2010-11-19 15 views

cevap

7

Kullanım .delegate(),: bir olay işleyicisi ekleyerek

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

.delegate() eserler #keyword (<ul>) yukarı yükselmesinin olaylarını dinler ... mevcut ve yeni eklenen .close elemanları üzerinde çalışır Onun altında. az verimli sürümü şuna benzer: iyi Bunlardan birkaç olacaksa eğer

$("#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(''); 
      } 
     }); 

veya .delegate() kullanmak:

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

Cevabınız da doğru ama aşağıdaki kodu kullanıyorum. Teşekkürler Nick! – Elankeeran

+0

@Elankeeran - bunu yapabilirsiniz ... ama bu * uzak * daha az verimli, neden işleyiciyi sadece bir kez takmıyorsunuz? –

+0

@Elankeeran - Bu ayrı bir soru, sizden başkalarına yardım etmesini isteyin. –