如何停止onclick事件

时间:2014-03-23 23:56:37

标签: jquery onclick

<p class="clickMe" id="one">click</p>
<p class"clickMe"  >click2</p>


<script>
$('.clickMe').on('click', function(e) {
alert("click");
$('#one').removeClass('.clickMe');

    });

</script>

为什么在删除“clickMe”课程时它仍会提醒我。我不知道它为什么会多次注册click事件。如何防止p标签多次点击?

3 个答案:

答案 0 :(得分:2)

您必须将脚本更改为:

$(this).on('click', '.clickMe', function(e) {
   alert("click");
   $('#one').removeClass('clickMe');
});

你拥有它的方式任何具有类clickMe的元素在启动时都会被绑定并保持这种状态。

我拥有它的方式事件被绑定到文档,并且仅在被点击的元素为clickMe时触发。因此后者更具活力。

答案 1 :(得分:1)

因为事件处理程序附加到对象(而不是类),所以一旦从对象中删除了类,就不会删除事件处理程序。

你需要执行:

$('#one').off('click');
//or
$('#one').unbind('click');

Off(Unbind)将删除事件处理程序。

http://api.jquery.com/off/

http://api.jquery.com/unbind/

答案 2 :(得分:0)

而不是.on()使用.one() - 应该这样做。 http://api.jquery.com/one/

$( "#foo" ).one( "click", function() {
    alert( "Displayed only once." );
});