jQueryを使って「onclickの」削除する方法?
-
18-09-2019 - |
質問
PHPコード:
<a id="a$id" onclick="check($id,1)" href="javascript:void(0)" class="black">Qualify</a>
私はリンクがonclick="check($id,1)
が解雇されることはありません」をクリックまたはすることはできませんのでcheck($id,1)
を削除したい。どのように私はjQueryを使ってそれを行うことができますか?
解決
の古い方法の(前1.7):
$("...").attr("onclick", "").unbind("click");
新しい道の(1.7 +):
$("...").prop("onclick", null).off("click");
(置換...あなたが必要とするセレクタで。)
// use the "[attr=value]" syntax to avoid syntax errors with special characters (like "$")
$('[id="a$id"]').prop('onclick',null).off('click');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<a id="a$id" onclick="alert('get rid of this')" href="javascript:void(0)" class="black">Qualify</a>
他のヒント
私はこれはかなり古いですけど、失われた見知らぬ人が、この質問の答えを探して見つけたときに、これは代わりにremoveAttr()を使用しての、それを行うための最善の方法です。
$element.prop("onclick", null);
引用 jQuerys公式DOKUするます:
「の代わりに)(.prop使用し、潜在的な問題を回避するために、Internet Explorer 6、7、または8で所望の効果を達成しない).removeAttrを(使用して、インラインのonclickイベントハンドラを削除する」
あなたはjqueryの1.7を使用している場合、
$('html').off('click');
他の
$('html').unbind('click');
削除onclick
プロパティ
あなたはこのように、あなたのクリックイベントをインラインで追加とし
<button id="myButton" onclick="alert('test')">Married</button>
次に、あなたがこのようなイベントを削除することができます:
$("#myButton").prop('onclick', null); // Removes 'onclick' property if found
<時間>
削除click
のイベントリスナー
このように、イベントリスナーを定義することによって、あなたのクリックイベントを追加したとします:
$("button").on("click", function() { alert("clicked!"); });
...または、このような
$("button").click(function() { alert("clicked!"); });
次に、あなたがこのようなイベントを削除することができます:
$("#myButton").off('click'); // Removes other events if found
<時間>
削除の両方
あなたは、イベントが追加されているか定かであれば、、あなたはこのように、両方を組み合わせることができます:
$("#myButton").prop('onclick', null) // Removes 'onclick' property if found
.off('click'); // Removes other events if found
これはremoveAttrを使用して非常に簡単です。
$(element).removeAttr("onclick");
に、アンバインド、バインドで一生懸命しようとした後、オフ、ATTR、removeAttrは、私はそれが仕事作っ小道具、クリックしてください。 だから、私は次のシナリオを持っている:私のHTMLで、私は、任意のインラインのonclickハンドラを添付していません。
は、その後、私はJavaScriptで私は、インラインのonclickハンドラを追加するには、以下の使用:
$(element).attr('onclick','myFunction()');
JavaScriptから、後の時点でこれを削除するには、私は次のように使用しました
$(element).prop('onclick',null);
これは私はJavascriptでdinamicallyクリックイベントをバインドとアンバインドすることが働いていた方法です。あなたの要素内の任意のインラインのonclickハンドラを挿入しないように注意してください。
何のonclickイベントは、要素上で直接ではなく、親要素からの場合は? この作業をする必要があります:
$(".noclick").attr('onclick','').unbind('click');
$(".noclick").click(function(e){
e.preventDefault();
e.stopPropagation();
return false;
});
あなたがIDでのonclickイベントをバインド解除する場合は、使用し、これを試してください:
$('#youLinkID').attr('onclick','').unbind('click');
あなたはクラスでのonclickイベントをバインド解除する場合は、使用し、これを試してください:
$('.className').attr('onclick','').unbind('click');