Cevaplar
-
Örnek verecek olursak,
$(".formelemani").live("change", function() { ... kodlar... });
-
Yarattıktan sonra form elemanına verdiğin id değeri ile birlikte $("$formel_id").change(); kullanamıyor musun?
-
sedran
Eleman sayfaya ajax ile geldiği için olmuyor sanırım.11 yıl önce yazılmış -
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>
11 yıl önce yazılmış
-
-
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.