好的,这样我的网页上就有了div,当单击它们时会为其分配一个变量。稍后,当单击另一个按钮以将其包含在我发送的电子邮件中时,我需要访问这些变量。我的var mailbody有效,因为它是我认为的局部变量。但是,如果我将其替换为frameColour,那么它将无法工作,因为它不是全局的。我该如何解决?

$('#purple').click (function() {
            $(".border").css("fill", "#763d81");
            var frameColour = "purple";
    });

$("#button").click (function() {
    var mailbody = "hello world.";
    window.open('mailto:sales@beauxcadeaux.co.uk?subject=My Frame&body=' + mailbody);
});

最佳答案

如果需要frameColour在其他功能中可用,则必须向上移动它的作用域。为了防止将其添加到全局范围中,您可以将相关功能包装在另一个功能中,即:

jQuery(function($) {
    var frameColour;

    $('#purple').click (function() {
        $(".border").css("fill", "#763d81");
        frameColour = "purple";
    });

    $("#button").click (function() {
        var mailbody = "hello world.";
        // you can use frameColour here
        window.open('mailto:sales@beauxcadeaux.co.uk?subject=My Frame&body=' + mail body);
    });
});

关于javascript - 如何解决JavaScript变量范围,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28959217/

10-11 23:19
查看更多