2010-11-19 10 views

答えて

2

あなたは、新たに要素の作成に直接clickを割り当てることができます:

$("#btnadd").click(function() { 
      // Made it a local variable by using "var" 
      var addkey = document.getElementById("txtaddkey").value; 
      if(addkey!=""){ 
       $('<li><span>'+addkey+'</span><span class=\"amountin\"><a href=\"#\">$0.05</a> $ <input type=\"text\" maxlength=\"5\"/></span><span class=\'close ui-icon \'></span></li>') 
        .find('.close').click(function(){ 
         $(this).parent().remove(); 
        }) 
        .end().appendTo('#keyword'); 
       $('#txtaddkey').val(''); 
      } 
     }); 

または使用し、これらのいくつかのより良いがあるように起こっているかを.delegate()in @Nick's answer参照)。

7

このような使用ここ.delegate()、:それは現在と新しく追加された.close要素上で動作バブルまでのイベントをリッスン#keywordにイベントハンドラを追加することにより、

$("#keyword").delegate(".close", "click", function(){ 
    $(this).parent().remove(); 
}); 

.delegate()作品(<ul>)...その下に効率の低いバージョンは、次のようになります。

$(".close").live("click", function(){ 
    $(this).parent().remove(); 
}); 
+0

あなたの回答も正しいが、以下のコードを使用している。おかげでニック!! – Elankeeran

+0

@Elankeeran - あなたはこれを行うことができます...しかし、それは*遠く*効率が悪いです、なぜハンドラを一度だけ付けないのですか? –

+0

@Elankeeran - それは別の質問です。他人を助けるようにそれを求めるべきです。 –

関連する問題