我有一个链接,如果我在设置为.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
类警报没有出现。
答案 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')来调用该事件。