<html>
<head></head>
<body>
<img src='1.gif' onclick='Hello()' id="img1"/><br/>
<input type='button' value='移除' onclick="Evt(this)" />
<script>
function Evt(b)
{
  var img1=document.getElementById("img1");
  if(b.value=="移除")
  {  
    b.value="绑定";
    img1.onclick=null;
  }  else
  {
    b.value="移除";
    img1.onclick=Hello;
  }
}
function Hello()
{
  alert('hello');
}
</script>
</body></html>

解决方案 »

  1.   

    针对onclick    (function(){
          var img=document.getElementById('img');
        var click=img.onclick;
        img.onclick=function(e){
          var a=this.getAttribute('disabled');
          if(a!==null&&a!=="false")return false;
          click.call(this,e);
        }})
      

  2.   

    slwsss代码总是非常干练而强悍啊
      

  3.   

    这个得看情况了。如果是通过addEventListener,attachEvent或者通过事件代理的方法来绑定的click事件是没有办法取消的。如果是jquery的click或者bind('click'),可以通过unbind('click')解除如果是通过img.onclick绑定的事件,#2的代码可以实现
      

  4.   

    <!DOCTYPE html>
    <html>
    <head>
        <title></title>
        <style>
            .dis{
                pointer-events:none;
            }
        </style>
    </head>
    <body>
    <img src="2.jpg" disabled/>
    <script>
        var i=document.images[0];
        i.onclick=function(){
            alert('a');
        }
        i.className='dis';
    </script>
    </body>
    </html>
    只是针对ff的话 加个样式