Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

JQuery Live() and Change()

Jquery ile sayfada sonradan yaratılan bir form elemanına change function vermem gerekiyor fakat sonradan yaratılan elemanlarda live fonksiyonu aracılığı ile event verebiliyoruz ve live fonksiyonu da change eventini desteklemiyormuş. Bunun için bir önerisi olan var mı?
+0
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Cevaplar

  • sedran adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    2 cevap - 5 soru
    Örnek verecek olursak,
    $(".formelemani").live("change", function() {
        ... kodlar...
    });
    
  • uls adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    65 cevap - 10 soru
    Yarattıktan sonra form elemanına verdiğin id değeri ile birlikte $("$formel_id").change(); kullanamıyor musun?
    • sedran adlı üyenin fotoğrafı sedran
      Eleman sayfaya ajax ile geldiği için olmuyor sanırım.
      10 yıl önce yazılmış
    • uls adlı üyenin fotoğrafı uls
      Aşağıdaki gibi denedim çalıştı.
      <head>
        <script src="http://code.jquery.com/jquery-latest.min.js"></script>
      </head>
      <body>
        
      <div>
      	<form id="formid" action="" method="get">
      		<input type="submit" value="git">
      	</form>
      </div>
      
      <a href="#" id="linkid">ekle</a>
      
      <script>
        $("#linkid").click( function() { 
      	$("#formid").append("<input type='text' name='deneme' id='inputid'>"); 
      	$("#inputid").change( function() { alert('değişti'); });
        });
      </script>
      
      </body>
      
      10 yıl önce yazılmış
  • 1
    risyasin adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    14 cevap - 0 soru
    Javascript'in çalışma mantığını bilmek gerekiyor.
    JS kodları JS engine sıralı şekilde yollanır. yani yazdığımız şekli ile.
    JS engine bir işi bitirip diğerine geçecek şekilde çalışmaz.
    tüm sıralı kodları çalıştırmaya başlar gönderilme sırası ile.
    Önceki bir iş uzun sürüyor ise sonrakine geçmek için bitmesi beklenmez.
    doğrudan diğer işe geçilir. (JSin performans kaygıları.)

    muhtemelen sizin ajax ile gelen input, siz change change() i çağırdıktan sonra sonra DOM'a ekleniyor. bu durumda yapmanız gereken, $.ajax()'ın success: handleResponse bölümüne eklemek. böylece change() eventiniz Ajaxin çağrısının bitmesini müteakip çalışacaktır. tabi inputunuz DOM'â eklendiği için change() de olması gerektiği gibi çalışacaktır.

    ajax çağrısının bir sorundan dolayı cevap döndürmemesi durumunda. setTimeout(func,delaytime); kullanabilirsiniz. tabi input.length kontrolü yapmanız gerekli.
    input gelmemişse yani DOMA eklenmemişse. ve $.ajax() i atadığınız değişkenin .success parametresi yoksa sonucunuz dönmemiş demektir.