1

次の問題があります。私のページには、たとえばname属性を持つ5つの要素があります。ドキュメントの準備ができたら、このセレクターを使用してクリックイベントに関数をバインドします。

   $('span[name="test"]').bind('click',function(){ // code });

それはすべて正常に機能しますが、ページの下部に、同じ名前属性を持つページにさらに多くの要素をロードするボタンがあります。通常、クリック イベントはバインドされていません。次に、次のことを行います。

   $('span[name="test"]').unbind('click');
   $('span[name="test"]').bind('click',function(){ // code });

これはすべて正常に機能しますが、私の質問は次のとおりです。既にバインドされている要素のバインドを解除せずに、残りの要素をバインドする方法はありますか??

4

2 に答える 2

2
$('#container').on('click', 'span[name="test"]', function(){});
于 2013-09-30T19:43:36.837 に答える
2

これが最善だと思います。要素が以前にあったかどうかを心配する必要はありません。

$(document).on('click','span[name="test"]',function(){ // code });

jQuery .on()が v.1.7 に追加され、この回答ではevent delegationが使用されます。

于 2013-09-30T19:43:46.940 に答える