#myDiv
是一个可点击的框,如果#myDiv
被点击,.opened
就会添加一个类。我的 jQuery 读取
if ($('#myDiv').hasClass('open')){
var myValue = "1";
}else{
var myValue = "2";
}
显然,页面加载完成后,myValue
总是等于2,但点击后#myDiv
,myValue
仍然是2。我应该使用什么事件来检测我的元素是否发生变化?我也想支持IE7+。谢谢!
#myDiv
是一个可点击的框,如果#myDiv
被点击,.opened
就会添加一个类。我的 jQuery 读取
if ($('#myDiv').hasClass('open')){
var myValue = "1";
}else{
var myValue = "2";
}
显然,页面加载完成后,myValue
总是等于2,但点击后#myDiv
,myValue
仍然是2。我应该使用什么事件来检测我的元素是否发生变化?我也想支持IE7+。谢谢!
试试这个解决方案:http: //jsfiddle.net/charaf11/Emv8L/
function containOpen(){
if ($('#myDiv.open').length==1){
var myValue = "1";
}
else{
var myValue = "2";
}
}
您将不得不重新运行代码,无法仅仅因为添加/删除了一个类而更改该代码。
因此,当点击发生时,您需要调用一个设置值的函数。
在您的点击事件侦听器中,为您的元素订阅一个自定义触发器 $('#myDiv').trigger('openedClassAdded')
。
然后
$('#myDiv').on('openedClassAdded', function () {
myValue = '2';
});