Ich bin Anfänger zu jquery. Angenommen, ich habe eine Liste von 10 "a" -Tags, die alle an einen Event-Handler-Mouseover angehängt sind, klicken Sie auf, bzw. auf mouseout.
was ich tun möchte, ist über alle "a" -Elemente iterieren und diese Ereignisse mit jquery Trigger auslösen.
Das Problem, mit dem ich konfrontiert bin, ist, dass diese Ereignisse irgendwann ausgelöst werden, daher, wenn ich den Code ausführen, sehe ich die Ergebnisänderung nur auf das letzte Element. Und nicht die Zwischenprodukte.JQuery Trigger Ereignisse programmgesteuert und warten, bis die Aktion des vorherigen Ereignisses abgeschlossen ist, nächste
$.each($("#styles a"), function(){
console.log("picked up " + $(this));
setTimeout(qwe($(this)), 2000);
});
function qwe(obj) {
console.log(obj.attr("id"));
$.when(obj.trigger("mouseover").trigger("click").trigger("mouseout"))
.then(function() {
console.log("Changing Result Value" + $("#textTag").text());
});
}
Gibt es Art und Weise an die Kette diese Ereignisse sollten sequentiell das heißt
zweite Element der Ereignisse nur trigged werden, wenn die Trigger-Aktion der ersten Elemente abgeschlossen ist. Ich habe versucht, über SO zu suchen, aber die meisten Artikel drehen sich darum, nur einzelne Ereignisse auszulösen. Dank
Ich vermute, jQuery '' trigger() 'gibt keine Zusage, und selbst wenn es getan wird, gibt es keine Möglichkeit zu wissen, wann die Event-Handler fertig sind, da Sie alles hineingesteckt haben könnten, und es gibt kein Rückruf? – adeneo
Ich habe noch keine Rückrufe gemacht. Beim Googeln wird festgestellt, dass diese Art von Funktionalität eher dem Ausführen automatisierter Testfälle entspricht. aufgrund der einschränkung muss ich über jquery laufen. Dies muss auf Websites von Drittanbietern laufen, daher kann ich keine Rückrufe im Impl der Eventhandles garantieren – jaipster