Unbind()和Off()不清除事件

时间:2016-12-14 04:41:12

标签: javascript jquery

我试图清除div中的所有事件。我有两个图像按钮btn1和btn2。现在我需要为我的btn1禁用图片按钮点击事件。我有函数调用onload来设置图片网址。我调用了禁用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";
    }
}

3 个答案:

答案 0 :(得分:0)

您的选择器有效吗?试试这个

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

答案 1 :(得分:0)

如果您需要使用let unpure = function(){ try{ return Right(pure.run()); }catch(e){ return Left(e); } } unpure(); // -> Either 删除点击事件,请确保事件与jQuery本身绑定。如果是jQuery onclick函数,则javascriptoff方法不会删除事件。下面是一个示例代码,用于绑定和取消绑定按钮的单击事件。我希望这将是您正在寻找的解决方案。



unbind




答案 2 :(得分: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" />
&#13;
&#13;
&#13;