a要素からクリックハンドラを削除しようとしていますが、.off()
は削除しません。 私は既にhereとhereを見ました。のクリックハンドラ.off()を使用しているときに要素が削除されない
(document.ready()
イベントに動的に生成される)私のHTML:
<ul id="catalog">
<li data-id="2">
<div class="item">
<div class="image">
<a href=""><center><i class="fa fa-picture-o fa-lg noitemimage"></i></center><span class="txt">My title</span></a>
</div>
<div class="details"><button class="delete btn-primary-grey-s">Delete</button></div>
</div>
</li>
</ul>
Javascriptを次のコードが呼び出され、ユーザアクションで
$(document).on('click', '#catalog a', function() {
ShowData();
return false;
});
と私はそれをクリックハンドラーを削除したいです上記のコードで設定されています。しかし、実行後、私はまだハイパーリンクをクリックすることができ、上記のコードはまだ実行されます。
$.ajax({
type: "GET",
url: "/api/deleteitem/?itemid=" + itemid,
data: "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
//disable the events on this elements' "a" click
//ALL THESE 3 OPTIONS BELOW DO NOT WORK
//$(document).off('click', 'ul#catalog li[data-id=' + itemid + '] a', '**');
//$('ul#catalog li[data-id=' + itemid + '] a').off();
$('ul#catalog li[data-id=' + itemid + '] a').off('click');
}
});
** UPDATE 1 **
$.ajax({
type: "GET",
url: "/api/getitems/?id=" + id ,
data: "",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
DYNAMIC HTML CODE GENERATED FROM HERE WORKS DIFFERENTLY??
}
}
});
ああ、しかし、 'ul'リストのHTMLは' document.ready() 'のjQueryを使って生成されています(私の投稿を更新しました)ので、すべての要素がまだ存在しないので、' $(document).on' ($ {'catalog#'})on( 'click'、function(){'は現在、通常のハイパーリンクとして機能していますが他に何ができますか?) – Flo
' $(document) 「クリック」、「#catalog a」) –
ありがとうございますが、私はすべてのリンクを無効にしたくありません。ちょうどクリックされたアイテムに属するリンクだけです。私のポーでst。私は '$(document).off( 'click'、 'ul#catalog li [data-id =' + registryItemId + '] a');'でも試しましたが、どちらもうまくいきません。 (どちらのセレクタも有効なbtwで、目的の要素を返します) – Flo