ToggleClass不工作Jquery

时间:2018-03-11 17:54:04

标签: jquery

我有一个链接,如果我在设置为.m时点击它,则该类会更改为.n,但是如果我再次点击它,一旦它被改变了,它就会没有出现警报......出了什么问题?

HTML

        <div class="m" >[enlace]</div>

JQUERY

         $(".m").on('click',function(){

          $(this).addClass("n");
           $(this).removeClass("m"); //or toggleClass?

            }); 

        $(".n").on('click',function(){

           Alert("n");

              }); 

看起来它无法识别div有一个新的.n类警报没有出现。

3 个答案:

答案 0 :(得分:2)

所以你可以这样做:

$(".clickable").on('click',function(){
    if ($this).hasClass("m")) {
        $(this).addClass("n");
        $(this).removeClass("m"); //or toggleClass?
    } else {
        alert("n");
    }
}); 

答案 1 :(得分:0)

我无法解释你为什么会这样做。但是,如果事件点击“.m”仍在监听“.m”不再存在,你可以使用这样的计数:

$(document).ready(function(){
        var count = 0;
        $('.m').on('click', function(){
            if(count == 0){
                $(this).toggleClass('n');
                $(this).toggleClass('m');
                count++;
            }else{
                alert('OK');    
            }
        });
    });

答案 2 :(得分:0)

您需要在Jquery中的动态元素上附加事件,如下所示:

/home/nour/anaconda3/bin

Jquery将无法在页面加载时附加动态元素上的事件。由于具有类'n'的元素在单击具有类'm'的元素之前将不可用,因此选择器$('。n')将不返回任何内容。所以我们将一个click事件附加到Static'document'元素,并在其中指示未来的元素,即$('。n')来调用该事件。