2017-03-06 1 views
0

[EDIT: GELÖST] HandhabungjQuery Ereignisse nicht

Für diejenigen, die das gleiche jQuery Problem auftreten könnte, ich habe gewesen AngularJS und ui-Ansicht mit den Staaten verwendet wird. Das Problem war, dass es nicht den Knopf finden, da es dynamisch von AngularJS erstellt wurde so das Problem lösen musste ich den Code in der Steuerung für diese

Ansicht bewegen

[/ EDIT]

Guten Abend,

Ich benutze ein jQuery-Skript, um die HTML eines Elements zu ändern.

(function($j){ 
    /* 
    *@ Event listeners 
    */ 
    let save_button = $j(".save-button"); 

    save_button.hover(function(){ 
    save_button.html("Save"); 
    console.log(this, save_button); 
    }, function(){ 
    save_button.html('<i style="vertical-align: middle;" class="glyphicon glyphicon-floppy-save"></i>'); 
    }); 

    console.warn("The script is loaded", $j); 
})(jQuery); 

Dies ist das Skript, das ich geschrieben habe. In der Seite index.html habe ich eine $ .noConflict() um sicherzustellen, dass es AngularJS nicht stört und in diesem anderen Skript übergebe ich das jQuery Objekt innerhalb der Funktion und benutze den $ j Parameter innerhalb davon.

Was im Skript geschrieben wird, wird gelesen, weil die console.warn() ausgelöst wird und ich es von der Konsole aus sehen kann.

Wenn ich console.log jQuery oder $ j, erkennt es das jQuery-Objekt.

Die jQuery-Bibliothek wird korrekt in die Ladereihenfolge gestellt, und dieses Skript ist das letzte, was von der Seite geladen wird. Ich habe keine Ahnung, warum die Hover-, HTML- und sogar die Hide-Funktionen von jQuery nicht funktionieren würden. Irgendwelche Ideen?

Vielen Dank im Voraus!

+0

was passiert, wenn Sie console.log (save_button), außerhalb der "Hover" -Methode – inspired

+0

Hallo, vielen Dank für die Nachfrage. Habe gerade das Problem gelöst. Es scheint, dass die dynamische Erzeugung der Seite mit angularjs das Problem verursacht. Er möchte, dass ich den Code in den Controller lege, sonst weiß er nicht, dass der Button existiert. – mnemosdev

+1

gut für das Finden des Problems! Sende es als Antwort selbst: D (anstatt einer Bearbeitung);) –

Antwort

1

Für diejenigen, die das gleiche jQuery-Problem auftreten können, habe ich mit AngularJS und Ui-View mit Staaten. Das Problem war, dass es nicht den Knopf finden, da es dynamisch von AngularJS erstellt wurde so das Problem lösen musste ich den Code in der Steuerung für diese Ansicht bewegen