2012-02-22 16 views
2

静的に作成され動的に作成された要素に対してハンドルイベントが必要です。静的作成された要素のための ソリューションです:ダイナミック用bind()とlive()の代わりにjquery one()を呼び出す

$(".js-tag-close").on("click", function() 
{ 
    $(this).parent().remove(); 
}); 

が作成:

$(".custom-tags-selector").on("click", ".js-tag-close", function() 
{ 
    $(this).parent().remove(); 
}); 

がどのように私は上の1の両方のケースを扱うことができますか()?

ありがとうございます...

+3

あなたが最初に削除できるように、第二 'on'のは、最初と同じように行います – ManseUK

答えて

5

2番目の方法は、静的要素と動的要素の両方で機能します。

なぜですか?

イベントハンドラの実行をコンテナ.custom-tags-selectorに委任したためです。指定されたセレクタ.js-tag-closeが有効な任意の子孫がクリックされている限り、ハンドラは実行されます(既に存在していても動的に追加されていても)。

唯一の条件は、コード実行時に委任先のコンテナがDOM内に存在することです。

DEMO

関連する問題