为什么unbind事件在图像上不起作用

时间:2016-07-04 14:34:06

标签: jquery

我有一个图像,我想禁用点击事件,所以我使用了unbind事件,如下所示

$('#myimage').unbind("click");

但是,请你告诉我为什么点击事件仍然有效?

这是我的代码

$(document).ready(function () {
    $('#myimage').unbind("click");
})

$(document).on('click', ' #myimage', function (event) {
    alert('i am called');
});

这是我的小提琴

http://jsfiddle.net/ygbxdspc/5/

1 个答案:

答案 0 :(得分:3)

小提琴中的问题是您的代码块已经在document.ready处理程序中运行(由于您已选择的设置),因此在绑定事件之前调用unbind(),因此no event is removed

要解决实际问题,您需要使用off()方法的委托形式,因为您最初使用on()附加了委托事件处理程序,如下所示:

<script>
    $(document).ready(function() {
        $(document).off('click', '#myimage');
    })

    $(document).on('click', '#myimage', function(event) {
        alert('i am called');
    });
</script>

Working example

请注意,在这个小提琴的设置中,JS代码被设置为执行为&#39;无包装 - <head>&#39;