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