私のフィドルリンクは
プッシュすると、選択したものだけを削除するのではなく、button
次のすべてを削除する理由がわかりません。<li>
<li>
ID
私のフィドルリンクは
プッシュすると、選択したものだけを削除するのではなく、button
次のすべてを削除する理由がわかりません。<li>
<li>
ID
問題は、すべてのボタンにすべてのクリック機能を追加していることです。セレクターを使用して$('button')
、クリック ハンドラーをアタッチするすべてのボタンを選択します。
イベントをボタンに繰り返しバインドしているため、すべてのボタンが削除されます。する必要がありbind the event once
ます。$('button').click will bind the event to all button types
. あなたがしたようにそれを繰り返す必要はありません。
すべてのボタンでこのようなことを試してください。
$('button').click(function () {
$(this).closest('li').remove();
});
click
これは、ページ上のすべてのボタンにイベントを添付するために発生します。新しいイベント バインドごとに、新しいハンドラーが既存のハンドラーに追加されます。最終的に、ブラウザは次のように記述されているかのようにコードを読み取ります。
$('button').click(function() {
$('#16').remove();
$('#17').remove();
$('#19').remove();
$('#23').remove();
$('#25').remove();
});
... つまり、<button>
ページ上の任意の要素をクリックすると、ID 、、、、のすべての要素が削除16
されます。17
19
23
25
別の方法は、 で次のように使用することです$(document).ready(function() { ... })
。
$('button').click(function() {
$(this).closest('li').remove();
});
ボタンの 1 つをクリックするたびに、すべてのスクリプトが起動します。これは、セレクターが単なる要素「ボタン」であるためです。各ボタンに ID を割り当て、その ID を使用して正しいコードを起動してみてください。
イベントをバインドすると、DOM が持つ現在のすべての要素が検出されるため、一部のボタンでは複数のクリック イベントが発生します。
ボタンの親を削除したい場合:
$('li button').click(function () {
$(this).parent().remove();
});
または.closest("li")
代わりに使用.parent()
試してみてください: http://jsfiddle.net/tBYdu/30/
$('button').click(function() {
$(this).closest('li').remove();
});
以下のようにセレクターとハンドラー関数を修正します。
$('#4 button').click (function () {
$(this).parent().remove();
});
#4
のIDはどこですかUL
これは、すべてのボタンにクリック ハンドラーを適用するために発生します。
$('button')
html に存在するすべてのボタンに適用されます。
シングルを試す
$('ul').on('click','button', function(){
$(this).closest('li').remove();
});