110

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でどのように行うことができますか?

4

8 に答える 8

267

Old Way(pre-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>

于 2009-11-06T14:04:00.423 に答える
59

私はこれがかなり古いことを知っていますが、失われた見知らぬ人が答えを探しているこの質問を見つけたとき(私がしたように)、これはremoveAttr()を使用する代わりにそれを行うための最良の方法です:

$element.prop("onclick", null);

jQuerysの公式dokuを引用する:

「.removeAttr()を使用してインラインonclickイベントハンドラーを削除しても、Internet Explorer 6、7、または8で目的の効果が得られません。潜在的な問題を回避するには、代わりに.prop()を使用してください。」

于 2011-07-26T13:49:06.120 に答える
28

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
于 2016-03-30T01:37:20.940 に答える
17

jquery1.7を使用している場合

$('html').off('click');

そうしないと

$('html').unbind('click');
于 2014-01-29T10:17:07.993 に答える
11

removeAttrを使用すると非常に簡単です。

$(element).removeAttr("onclick");
于 2016-02-09T16:02:47.140 に答える
5

bind、unbind、on、off、click、attr、removeAttr、propで一生懸命試した後、私はそれを機能させました。したがって、次のシナリオがあります。HTMLで、インラインonclickハンドラーをアタッチしていません。

次に、私のJavascriptで、以下を使用してインラインonclickハンドラーを追加しました。

$(element).attr('onclick','myFunction()');

後でJavascriptからこれを削除するために、私は以下を使用しました。

$(element).prop('onclick',null);

これは、Javascriptでクリックイベントを動的にバインドおよびバインド解除するために機能した方法です。要素にインラインonclickハンドラーを挿入しないでください。

于 2013-08-15T12:40:45.600 に答える
2

onclickイベントが要素に直接ではなく、親要素からのものである場合はどうなりますか?これは機能するはずです:

$(".noclick").attr('onclick','').unbind('click');
$(".noclick").click(function(e){
    e.preventDefault();
    e.stopPropagation();
    return false;
});
于 2015-05-22T11:48:34.783 に答える
0

onclickイベントをIDでバインド解除する場合は、これを試してください。次に、次を使用します。

$('#youLinkID').attr('onclick','').unbind('click');

クラスごとにonclickイベントのバインドを解除する場合は、これを試してください。次に、次を使用します。

$('.className').attr('onclick','').unbind('click');
于 2012-09-20T04:25:21.107 に答える