Ajax után bind
Van egy ilyen kódom (Drupal 7.x, JQuery)A "kikapcs-bekapcs" rész jól működik. A gond ott kezdődik, hogy a "#more" egy olyan gomb, melynek hatására egy Ajax lekérdezés után újratöltődik a ".select-field-wrapper".
Ugyan én újrahívom az Ajax lefutás után a init() rész (ami le is fut), de a bind "eltűnik" a .select-field-wrapper-ról.
Nem vagyok programozó, de szeretnék valami útmutatást. Én arra gyanakszom, hogy a "ajaxComplete"-kor még nincs a helyén(?) a .select-field-wrapper, így nem bind-elődik. Vagy rosszul csinálok valamit ?
■
(function ($) {
$(document).ready(function() {
init();
});
function init() {
// kikapcs-bekapcs
$(".select-field-wrapper").bind("change", function(e){
$("td:has(#"+this.value+") div.form-wrapper").slideUp("slow");
$("#"+this.value).slideDown("slow");
});
// ajax betöltés után
$("#more").bind("ajaxComplete ", function(){
init();
});
}
})(jQuery);
Ugyan én újrahívom az Ajax lefutás után a init() rész (ami le is fut), de a bind "eltűnik" a .select-field-wrapper-ról.
Nem vagyok programozó, de szeretnék valami útmutatást. Én arra gyanakszom, hogy a "ajaxComplete"-kor még nincs a helyén(?) a .select-field-wrapper, így nem bind-elődik. Vagy rosszul csinálok valamit ?
AJAX
.select-field-wrapper
, ezért érdemes lehet elhalasztani az eseményt. Valamint azt is hozzá kell tenni, hogy nem véletlen jött létre egy gyakorlat a Drupal-ban az események hozzárakásánál. Érdemes megnézni a beépített Drupal modulokat, és utána nézni, mi is az aDrupal.behaviors
objektum.rosszul
Mint ahogyan Poetro is
pp
live
Én ezt úgy szoktam "magyarázni", hogy ahol menet közben változik a tartalom (ajax) és ott kell túrkálni, akkor .live() kell.
Köszönöm az iránymutatást,
Ugyan mindegyik .select-field-wrapper (ez egy select) megváltoztatásánál lefut a script, viszont csak mindig az utolsó .select-field-wrapper-nél látszik a slideUp és slideDown. Ami még érdekes, hogy ott nem egyszer, hanem többször is lefut a script.
Mondjuk könnyebb lenne, ha a
pp
Köszönöm. Ez kellett még, és
(azért nem adtam linket, mert lokális gépen van a forrás)
jquery bind egyebek jó kis