1

我有点困惑。在 jQuery 中使用一个变量作为全局变量的最佳方法是什么 - 只需使用它两次单击功能?这是代码:

http://jsfiddle.net/DyqdA/

HTML:

<div id = "div1">DIV # 1</div>
    <div id = "div2">DIV # 2</div>
    <input type = "button" value = "Click to see whick div you've chosen."/>
    <h1></h1>   

jQuery :

$(document).ready(function() { 
    var answer;
    $("#div1").click(function(event) { 
        window.answer = "FIRST";
    }); 

    $("div2").click(function(event) { 
        window.answer = "SECOND";
    });

    $("button").click(function() {
        $("h1").html(window.answer);
    }); 
})(jQuery); 

CSS:

#div1 {
    background-color: red; 
    height: 50px;
}
#div2 {
    background-color: blue; 
     height: 50px;
}

我需要将文本保存到答案变量。提前致谢。

4

3 回答 3

4

只需删除window.,因为此变量不是全局变量。它可以在您尝试使用它的上下文中访问:

$(document).ready(function() { 
    var answer;
    $("#div1").click(function(event) { 
        answer = "FIRST";
    }); 

    $("#div2").click(function(event) { 
        answer = "SECOND";
    });

    $("input").click(function() {
        $("h1").html(answer);
    }); 
}); 

编辑:最后放弃(jQuery)

EDIT2:另外,div2应该是#div2并且你的 html 中没有 a button,你有一个inputtype button

于 2013-04-11T14:00:19.453 回答
1

http://jsfiddle.net/DyqdA/1/

$(document).ready(function() {   
    var answer;
    $("#div1").click(function(event) { 
        answer = "FIRST";
    }); 

    $("#div2").click(function(event) { 
        answer = "SECOND";
    });

    $("#displayDivButton").click(function() {
        $("h1").html(answer);
    }); 
})(jQuery); 

您正在使用(“button”)但没有任何“button”标签,您还使用(“div2”)而不是(“#div2”)......然后您可以在声明答案var时放下窗口在所有 3 个功能的范围内

于 2013-04-11T14:04:28.313 回答
0

希望你期待这个:

myVar="Global Scope";

family = function(){

 var myVar="member";

member1= function() {
    console.log(myVar);
};

member2= function() {
    myVar = "member2";
    console.log(myVar);
  };

  member1();
  member2();

};

family();
console.log(myVar);
于 2015-05-29T14:22:18.203 回答