2

クリックを解除してdivに移動します。2つのdivがあります。クリックイベントを内部のdivにバインド解除したい

ページが読み込まれたときに、クリックイベントのバインドを解除したいと思いますtriangle。私のJQueryコード:

 $(".wrapper").unbind();
 $(".triangles").unbind();

 $(".triangles" ).click(function(){   //it is still clickable

  alert("hello u clicked me");
 });

<div class="wrapper">
     <div class="triangles">
     </div>
     <div class="triangles">
     </div>
     <div class="triangles">
     </div>
</div>
4

3 に答える 3

2

クリックイベントが登録される前ではなく、登録された後で、バインド解除関数を呼び出していることを確認してください。バインド解除後にクリックイベントが登録されている場合、クリックイベントは削除されません。

$(".triangles" ).click(function(){   //it is still clickable

    alert("hello u clicked me");
});

// this will remove the click event and all other handlers 
$(".wrapper").unbind();
$(".triangles").unbind();

また、コードの構文エラーを指摘したいと思います。);クリックイベントハンドラーに、閉じるために必要なものがありません。

クリックイベントを頻繁に削除して再適用する場合は、別の関数でラップすることをお勧めします。

function bindClick() {
    $(".triangles" ).click(function(){   //it is still clickable

        alert("hello u clicked me");
    });
}

bindClick()これで、クリックイベントを再適用する必要があるときに電話をかけることができます。

于 2012-05-06T06:49:55.083 に答える
2

.off()必要に応じて、イベントのバインドを解除するために使用します。

例:

$(".triangles").off("click");

別の例:ここでは、2回目からではなく、最初はクリック可能になります

$(".triangles" ).click(function(){
    alert("hello u clicked me");
    $(this).off('click'); //after this, $(".triangles") will not longer be clickable
});

それを試してみてください :)


私に説明させてください、あなたがあなたのコードで何を間違えたか

 $(".wrapper").unbind(); //unbinded all the events
 $(".triangles").unbind();  //unbinded all the events

 $(".triangles" ).click(function(){  //binded another click event
     alert("hello u clicked me"); //So of course it will be clickable
 });
于 2012-05-06T06:53:48.767 に答える
0

次を使用できます。

$('.triangles').on("click", function() {
    alert('something');
});

$('.triangles').off("click");
于 2012-05-06T06:54:42.217 に答える