当我使用警报时,toggleClass正在工作,否则不行。为什么?

时间:2014-05-20 06:54:19

标签: javascript jquery toggleclass

问题是当我使用警报时,toggleClass不起作用。

这是我的代码

$(testParentSpan).click(function(){
      $(this).toggleClass("parent1");
      alert("test is click");
});

其中testParentSpan是变量存储整个span标记

var testParentSpan = htmlLabelElementObj.parentElement.parentElement.parentNode.parentNode.parentNode.firstChild;

CSS

span.parent1 span.dynatree-icon {
    background-image: url('closefolder.png') !important;
}

/*span.parent1[class~='dynatree-expanded'] */
span.dynatree-expanded[class~=parent1] span.dynatree-icon  {
    background-image: url('openfolder1.png') !important;
}

我试过

$(testParentSpan).bind('click','.class',function(){ 
    $(this).toggleClass("parent1");
      alert("test is click");
});

同样的效果没有变化。当我使用警报时,它不起作用。

1 个答案:

答案 0 :(得分:1)

唯一合理的想法是你可能有一些代码可以改变css类或进行其他dom操作,并且代码会延迟它在警报sceanario中的执行 - alert会阻止控制流。从问题中提供的信息我只能建议调试,以便跟踪产生这种竞争条件的代码发生的位置......