1

#myDiv是一个可点击的框,如果#myDiv被点击,.opened 就会添加一个类。我的 jQuery 读取

if ($('#myDiv').hasClass('open')){
 var myValue = "1";
}else{
 var myValue = "2";
}

显然,页面加载完成后,myValue总是等于2,但点击后#myDivmyValue仍然是2。我应该使用什么事件来检测我的元素是否发生变化?我也想支持IE7+。谢谢!

4

3 回答 3

1

试试这个解决方案:http: //jsfiddle.net/charaf11/Emv8L/

function containOpen(){
  if ($('#myDiv.open').length==1){
  var myValue = "1";

  }
  else{
       var myValue = "2";
      }

}
于 2013-08-19T00:10:20.380 回答
0

您将不得不重新运行代码,无法仅仅因为添加/删除了一个类而更改该代码。

因此,当点击发生时,您需要调用一个设置值的函数。

于 2013-08-19T00:01:44.170 回答
0

在您的点击事件侦听器中,为您的元素订阅一个自定义触发器 $('#myDiv').trigger('openedClassAdded')

然后

$('#myDiv').on('openedClassAdded', function () {
    myValue = '2';
});
于 2013-08-19T00:09:06.180 回答