2012-03-12 15 views
9

'dan sonra çalışmıyor class="tags" ile önceden tanımlı bir köprüyle bir divum var.

<div class="tags"> 
    <a href="#">myLink</a> 
</div> 

Ve kullanıcı bu bağlantıyı tıklatırsa bu köprüyü kaldırmak için işlevim var.

$('.tags a').click(function() { 
    $(this).remove(); 
    return false; 
}); 

Ve bu, önceden tanımlanmış köprülerle çalışır. Bunları çağrıda olmayacaktır (tıklamada) köprüyü kaldırmak için başka (sayfa yüklendikten sonra) jQuery yardımıyla bağlantılar

$('.tags').append('<a href="#">newLink</a>'); 

İşlevini eklerseniz , linkler eklendi. Bunu nasıl çözebilirim?

$(".tags a").live("click", function() { 
    // ... 
}); 

Eğer ilk yüklemeden bağlantılar ekleyerek olduğundan, standart tıklama olay dinamik eklenen bağlantıları binded olmayacak:

cevap

4

Canlı-fonksiyonunu kullanmak zorunda.

+19

** Not **, ['live()'] (http://api.jquery.com/live) 1,7'den beri değer kaybetti. Bundan sonra ['on()'] (http://api.jquery.com/on) kullanmak tavsiye edilir. Çevrilen arama, $ (document) .on ('click', '.tags a', function() {/ * foo * /}); ' – Matt

+0

Teşekkürler. Tüm tıklamalarda/benzeri işlemlerimde mi, yoksa gerçekten gerektiğinde mi kullanmalıyım? performans için – svenkapudija

+1

, bu cevaba bak: http://stackoverflow.com/questions/6047193/liveclick-and-performance Ben şahsen tıklama olayını kullanmak ve gerçekten ben keşke canlı olayı kullanmayı tercih Dinamik eklenmiş elemanlar olacak açık olduğu gibi, buna ihtiyacım var. – kufi

0

Tıklama etkinliğiniz yalnızca gelecekteki öğeye değil mevcut dom öğesine eklenir. Bu olayı tüm öğeye eklemek istiyorsanız, gelecekteki olayları jquery'de kullanmanız gerekir. http://jsfiddle.net/6cGvt/

+5

** Not **, ['live()'] (http://api.jquery.com/live) 1,7'den beri değer kaybetti. Bundan sonra ['on()'] (http://api.jquery.com/on) kullanmak tavsiye edilir. Çevrilen arama $ (document) .on ('click', '.tags a', function() {/ * foo * /}); ' – Matt

+0

Yup, ... jQuery'deki en son sürüm için. ON yöntemini kullanmak – sandeep