基于元素类在Jquery中设置变量

时间:2013-03-08 07:23:24

标签: jquery

我很困惑,我的头疼,请帮忙。

当一个元素有一个'selected'类时,我试图将一个变量发送到fancybox.js。这有效:

var showMe = true;

这也有效:

if(a){
  var showMe = true;
}

这会导致提示“选择了班级”:

if($('#shuffle').hasClass('selected')){
  alert("class is selected"); 
}

我还检查了Firebug并选择了该课程。

问题在于,当我这样做时,它不起作用:

if($('#shuffle').hasClass('selected')){
    var showMe = true;  
}

showMe未设置为true。

我知道这一定很简单,提前感谢任何帮助。

编辑这是有效的: 由于某种原因,更改为选定的类没有设置showMe = true。我在按钮上添加了一个.click函数,它确实有效。不知道为什么,但是如果你知道我应该在哪里读到这个,那么请通过这里的链接。

$(function() {
  $("#shuffle").click(function(){

    showMe = true; 
    console.log( showMe);
  });
});

感谢所有回复的人,我猜测你的答案不起作用的原因与我问这个问题的方式有关。干杯

4 个答案:

答案 0 :(得分:2)

使用var showMe = 'true'设置局部变量。如果要在函数外部使用该变量,只需使用showMe = 'true'<这将设置一个全局变量。

喜欢这个

if($('#shuffle').hasClass('selected')){
    showMe = true;  
}

答案 1 :(得分:1)

也许你会看看这个:

var showMe = ($('#shuffle').hasClass('selected')) ? true : false;
alert(showMe);

确保在运行时已准备好DOM!

答案 2 :(得分:1)

在文档准备好之前声明你的变量或者其他什么。这样你就会把它变成全球性的。

<script type="text/javascript">
    var showMe = false;
    jQuery(document).ready(function($) {
        console.log( showMe );
        if ( $('#shuffle').hasClass('selected') )
        {
            showMe = true;
            console.log( showMe );
        }
    });
</script>

答案 3 :(得分:0)

尝试

if($('#shuffle').hasClass('selected')){
    showMe = true;  
}

我已将showMe移至全局范围(通过删除var关键字),现在无论您何时访问它都使用

if(typeof(window.showMe) != 'undefined') 
 alert(showMe);