2010-04-20 7 views
5

Belirli bir öğeler kümesinin eklenmesiyle hemen bir kod çalıştırmak istiyorum. jQuery.live(), daha sonra oluşturulmuş olsa bile etkinlik işleyicilerini öğelere bağlamanızı sağlar. Ancak AFAIK, aşağıdaki gibi bir şey yapmak için uygun bir yöntem yoktur:Öğeler eklendiğinde jQuery'nin canlı() etkinliklerle ilgili olduğu gibi kod nasıl çalıştırılır?

$("some selector").live("attach", function() { $(this).whatever(); }); 

Bunu nasıl yapabilirim? Açıklama:

Yeni oluşturulmuş bir öğe üzerinde bir animasyon çalıştırmak istiyorum. İlk olarak eklemeden önce animasyonun faydasız olmasının yanı sıra, bazı tarayıcılarda backgroundColor özelliği, DOM'a eklenene kadar CSS sınıfından miras alınmaz. Bu benim animasyon kodumun kırılmasına neden oluyor.

Bu nedenle, bu öğeyi oluşturmak istiyorum, bir şekilde ekledikten sonra animasyonu uygulayıp sonra döndürün.

cevap

2

Sana DOMNodeInserted ve DOMNodeRemoved kontrol öneririz.

Bu durum yararlı olabilir: bir çapraz tarayıcı uyumlu bir şekilde yapmak çok zor

0

AFAIK, jQuery'de dom değiştiğinde işlenen hiçbir olay yoktur. Tam olarak sorgulanabilir kısa sürede geçirilir olarak olur yeni eklenen elemana kod çalıştırmasına gerekir için jquery örn

var $span = $('<span>my new document fragment</span>'); 
$span.css('what','ever'); 

$('div').append($span); 
+0

bazı ayrıntıları eklemiş benim sorunum hakkında. Açıkladığın şey normalde ne yapıyorum. Fakat bu durumda, 'backgroundColor' öğesi, öğeye DOM'a eklenene kadar (sınıftan) ayarlanmamıştır. – muhuk

1

Detecting When DOM Elements Have Been Removed With jQuery. Benzer bir şey uygulamak zorunda kaldım ve mutasyon olaylarını @Makram'ın önerdiği gibi (DOMNodeInserted, DOMNodeRemoved) ve setInterval bir geri dönüş yöntemi (yalnızca değişikliklerin yoklanması) olarak kullanmak zorundaydım - mutasyon olaylarından biri olursa setInterval durduruldu işten kovulduktan sonra olayların işe yarayacağını ve yoklamaya ihtiyaç duymadığınızı varsayın. Notun Ayrıca

() canlı daima IE çalışmak görünmüyordu, bu yüzden elle olduğum yeniden bağlayıcı bazı durumlarda olayları (tabii unbinding ilk sonra!)

İlgili konular