我很困惑,我的头疼,请帮忙。
当一个元素有一个'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);
});
});
感谢所有回复的人,我猜测你的答案不起作用的原因与我问这个问题的方式有关。干杯
答案 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);