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

标签 javascript jquery toggleclass

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

这是我的代码

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

其中 testParentSpan 是存储整个范围标签的变量

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");
});

效果相同,没有变化。当我使用警报时它有效,否则无效。

最佳答案

想到的唯一合理的事情是,您可能有一些代码可以更改 css 类或执行其他一些 dom 操作,并且该代码会延迟它在警报场景中的执行 - 警报会阻止控制流。根据问题中提供的信息,我只能建议进行调试,以便跟踪生成此竞争条件的代码发生的位置......

关于javascript - 当我使用警报时,toggleClass 正在工作,否则不会。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23752854/

相关文章:

javascript - 如何删除已经生成的脚本标签并重新生成?

javascript - 如何只清除文件上传字段?

javascript - Jquery 现在和 future 日期之间的差异不正确

javascript onscroll淡入淡出相同的类但具有不同的div

javascript - .parent().toggleClass 不工作

javascript - 检测 DOM 元素的内联/ block 类型

javascript - 将字母数字变量传递给 JQuery Ajax

javascript - 如何使用 Javascript 清除 ie7 上的身份验证缓存?

javascript - 从javascript中的另一个函数调用变量