1

私のフィドルリンクは

http://jsfiddle.net/tBYdu/18/

プッシュすると、選択したものだけを削除するのではなく、button次のすべてを削除する理由がわかりません。<li><li>ID

4

8 に答える 8

3

問題は、すべてのボタンにすべてのクリック機能を追加していることです。セレクターを使用して$('button')、クリック ハンドラーをアタッチするすべてのボタンを選択します。

于 2012-10-17T17:30:26.687 に答える
2

イベントをボタンに繰り返しバインドしているため、すべてのボタンが削除されます。する必要がありbind the event onceます。$('button').click will bind the event to all button types. あなたがしたようにそれを繰り返す必要はありません。

すべてのボタンでこのようなことを試してください。

ライブデモ

$('button').click(function () {
  $(this).closest('li').remove();
});
于 2012-10-17T17:30:06.237 に答える
0

clickこれは、ページ上のすべてのボタンにイベントを添付するために発生します。新しいイベント バインドごとに、新しいハンドラーが既存のハンドラーに追加されます。最終的に、ブラウザは次のように記述されているかのようにコードを読み取ります。

$('button').click(function() {
    $('#16').remove();
    $('#17').remove();
    $('#19').remove();
    $('#23').remove();
    $('#25').remove();
});​

... つまり、<button>ページ上の任意の要素をクリックすると、ID 、、、、のすべての要素が削除16されます。17192325

別の方法は、 で次のように使用することです$(document).ready(function() { ... })

$('button').click(function() {
    $(this).closest('li').remove();
});​

デモ: http://jsfiddle.net/tBYdu/34/

于 2012-10-17T17:30:47.457 に答える
0

ボタンの 1 つをクリックするたびに、すべてのスクリプトが起動します。これは、セレクターが単なる要素「ボタン」であるためです。各ボタンに ID を割り当て、その ID を使用して正しいコードを起動してみてください。

于 2012-10-17T17:31:51.420 に答える
0

イベントをバインドすると、DOM が持つ現在のすべての要素が検出されるため、一部のボタンでは複数のクリック イベントが発生します。

ボタンの親を削除したい場合:

$('li button').click(function () {
  $(this).parent().remove();
});

または.closest("li")代わりに使用.parent()

于 2012-10-17T17:31:52.603 に答える
0

試してみてください: http://jsfiddle.net/tBYdu/30/

$('button').click(function() {
    $(this).closest('li').remove();        
});
于 2012-10-17T17:32:10.183 に答える
0

以下のようにセレクターとハンドラー関数を修正します。

$('#4 button').click (function () { 
    $(this).parent().remove();
});

#4のIDはどこですかUL

デモ: http://jsfiddle.net/tBYdu/33/

于 2012-10-17T17:33:07.963 に答える
0

これは、すべてのボタンにクリック ハンドラーを適用するために発生します。

$('button')html に存在するすべてのボタンに適用されます。

シングルを試す

$('ul').on('click','button', function(){
   $(this).closest('li').remove();
});

http://jsfiddle.net/tBYdu/29/のデモ

于 2012-10-17T17:32:27.890 に答える