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