jQuery简单的功能不起作用

时间:2016-11-07 05:40:29

标签: jquery html

HTML code:



    $('.alertme').click(function(){
        alert('By selecting new image your old image will be remove');
        $(this).removeClass('alertme');
    });

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
#Before a Function is executed
    <input type="file" name="efile" id="efile" style="width:100%" class="alertme">
    #After a function is executed
    <input type="file" name="efile" id="efile" style="width:100%" class="">
&#13;
&#13;
&#13;

它在执行功能后仍然提醒我。我不知道为什么会这样?你能帮我么?感谢您的帮助。

3 个答案:

答案 0 :(得分:1)

删除类不会删除附加的事件处理程序。使用off()方法移动事件处理程序。

$('.alertme').click(function(){
    alert('By selecting new image your old image will be remove');
    $(this).off('click').removeClass('alertme');
});

答案 1 :(得分:0)

再次遍历以检查是否删除了dom元素或类,以及是否通过事件委派使用。

$(document).on('click', '.alertme', function(){
    alert('By selecting new image your old image will be remove');
    $(this).removeClass('alertme');
});

答案 2 :(得分:0)

您应该使用.one()

  

将处理程序附加到元素的事件。每个事件类型的每个元素最多执行一次处理程序。

$('.alertme').one('click', function(){
    alert('By selecting new image your old image will be remove');
    $(this).removeClass('alertme');
});

然而,更好的选择是在操作选择器(如删除和添加类)时使用Event Delegation委托事件方法.on()

$(document).on('click', '.alertme', function(){
    alert('By selecting new image your old image will be remove');
    $(this).removeClass('alertme');
});