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 official dok :
「.removeAttr()を使用してインラインonclickイベントハンドラーを削除しても、Internet Explorer 6、7、または8では目的の効果が得られません。潜在的な問題を回避するには、代わりに.prop()を使用してください」
jquery 1.7を使用している場合
$('html').off('click');
else
$('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");
Bind、unbind、on、off、click、attr、removeAttr、propで一生懸命試した後、機能させました。だから、私は次のシナリオを持っています:私のhtmlにインラインonclickハンドラーを添付していません。
次に、私のJavascriptで次を使用してインラインonclickハンドラーを追加しました。
$(element).attr('onclick','myFunction()');
後でJavascriptからこれを削除するには、次を使用しました。
$(element).prop('onclick',null);
これは、JavaScriptでクリックイベントを動的にバインドおよびバインド解除するために働いた方法です。要素にインライン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');