• 02-01-2011, 23:30:35
    #1
    jQuery.com/FAQ'dan orijinal metin:

    Alıntı
    Why doesn't an event work on a new element I've created?

    As explained in the previous question about AJAX, events are bound only to elements that exist at the time when you issue your initial jQuery call. When you create a new element, you must bind the event to it separately, or use event delegation.
    Çeviri (Eksikler ve hatalar olabilir, kendim çevirdim):
    Önceki soruda da açıklandığı gibi, olaylar (events) sadece sayfanın yüklendiği anda var olan elementler için geçerlidir. Yeni bir element oluşturduğunuzda, ona ayrıca bir olay eklemeniz veya var olan olayı yetkilendirmeniz gerekir.

    Çözümü:
    Örnek bir uygulama (Olay ekleme):

    $.ajax({
       type: 'POST',
       url: 'http://asd.com/,
       data: $('form').serialize(),
       success: function (sonuc) {
          $('div#ajaxten_donen_sonuc').html(sonuc);
          // Konunun kapsadığı bölüm burada başlıyor
          $('#ajaxten_donen_sonuc a').click(function() {
              // Buraya istediğinizi yapabilirsiniz
          });
       }
    });
    Yetkilendirme olayını ise henüz çözmüş değilim.
  • 09-01-2011, 21:32:39
    #2
    yetkilendirme olayı sonradan oluşturulan dom elemanlarının da oluşturulunca direk event'e sahip olması demek..

    sizin örneğinizden yola çıkarsak:

    $('#ajaxten_donen_sonuc a').live('click', function() {
              // Buraya istediğinizi yapabilirsiniz
    });
    bunu verdikten sonra artık success içerisinde tekrar a lar için bir event tanımanıza gerek kalmaz...

    ayrıca delegate ve live sayfalarını inceleyiniz...
  • 10-01-2011, 22:54:10
    #3
    Hocam teşekkürler, live fonksiyonunu birkaç kez incelemiştim ama anlayamamıştım. Demek ki bu işe yarıyormuş.