<img id="img1" onclick="abc()">function abc()
{
    $("#img1").unbind('click');
    alert('unbound');
}第一次点击img1时,提示 unbound,我以为 onclick事件已被解除了,不过还是可以点击触发 abc(),请问如何能解除绑定 onclick 事件?

解决方案 »

  1.   

    jq只能卸载添加的事件。<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
            "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
        <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"/>
        <title>test</title>
        <script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
    </head>
    <body>
    <img id="img1" src="http://img1.cache.netease.com/cnews/2012/4/16/20120416181904757bd.jpg">
    <button id="btn">卸载事件</button>
    <script type="text/javascript">
        var img = $('#img1');
        img.click(function(){
            alert('click');
        });
        $('#btn').click(function (){
            img.unbind('click');
            alert('已卸载事件');
        });
    </script>
    </body>
    </html>
      

  2.   

    function abc()
    {
        $("#img1").attr('onclick',"");
       alert('unbound');
    }
      

  3.   

    <img id="img1" onclick="abc()">//事件写在html里面,不是用jquery添加的,估计是这个原因导致没有清除事件
     function abc()
    {
      $("#img1").onclick=function(){};//直接给成员重新赋值不就ok了?
      alert('unbound');
    }