2016-12-14 56 views
0

我想清除div中的所有事件。我有两个图像按钮btn1和btn2。现在我需要为我的btn1禁用图像按钮点击事件。我有函数调用onload来设置图像的URL。我打电话给禁用CSS,然后解除绑定/关闭。按钮看起来变灰,但点击事件仍然有效。解除绑定()和关闭()不清除事件

function SetApplicationImage(applType) { 
    if (applType.id.indexOf('Dog') > -1) { 
     applType.src = "../images/btn1_dog.png"; 
     $("#btn1").attr('disabled', 'disabled').css('cursor', 'default').fadeTo("fast", .25); 
     $('#btn1').off(); 
     $('#btn1').unbind(); 
    } else if (applType.id.indexOf('Cat') > -1) { 
     applType.src = "../images/btn2_cat.png"; 
    } 
} 
+0

如何事件处理程序添加 –

+0

您可以提供更多的代码? –

+0

向我们显示你的html? – ScanQR

回答

0

您的选择器是否有效?试试这个

if ($("#btn1").length) { 
     console.warn('unbinding...') 
     $("#btn1").unbind();  
    } 
0

如果您需要与jQuery删除点击活动,请确保该事件与jQuery本身绑定。如果其功能onclickjavascript,则offunbind方法不会删除事件。这是一个示例代码,它绑定和解除绑定按钮的点击事件。我希望这将成为您正在寻找的解决方案。

<html> 
 

 
<head> 
 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script> 
 
    <script> 
 
     function ClickFunction(){ 
 
      console.log("Clicked"); 
 
     } 
 
     function EnableFunction(){ 
 
      $('#btn1').off("click", ClickFunction); 
 
      $('#btn1').bind('click', ClickFunction); 
 
      $("#btn1").prop('disabled', false).css('cursor', 'default').fadeTo("fast", 1); 
 
      console.log("Click Event Added"); 
 
     } 
 
     function RemoveClickFunction(){ 
 
      $('#btn1').off("click", ClickFunction); 
 
      $("#btn1").attr('disabled', 'disabled').css('cursor', 'default').fadeTo("fast", .25); 
 
      console.log("Click Event Removed"); 
 
     } 
 
     $(document).ready(function(){ 
 
      $('#btn1').on("click", ClickFunction); 
 
      console.log("Click Event Added"); 
 
     }) 
 
    </script> 
 
</head> 
 

 
<body> 
 
    <button id="btn1">Click me</button>  
 
    <button onclick="EnableFunction()" id="btn2">Enable me</button> 
 
    <button onclick="RemoveClickFunction()" id="btn3">Remove Click Function</button> 
 

 
</body> 
 

 
</html>

0

如果要禁用按钮,则不应解除绑定任何事件,因为这将删除的按钮时,再次启用绑定事件后面的要求。然而,无论attr()unbind()应该如下工作,

$(document).ready(function() { 
 

 
    $("#btn").attr("disabled", "disabled"); 
 

 
    $("#btnUnbind").click(function() { 
 
    alert("Dont show me"); 
 
    }); 
 

 
    $("#btnUnbind").unbind(); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="button" id="btn" value="Click" /> 
 
<input type="button" id="btnUnbind" value="Unbiind" />