Benutzerdefinierte Funktionen an DOM-Ereignisse im Prototyp binden?
-
09-06-2019 - |
Frage
Jquery hat ein großartiges Sprachkonstrukt, das so aussieht:
$(document).ready(function() {
$("a").click(function() {
alert("Hello world!");
});
});
Wie Sie vielleicht erraten haben, bindet es nach dem Laden des Dokuments eine benutzerdefinierte Funktion an das onClick-Ereignis aller A Stichworte.
Die Frage ist, wie kann ich dasselbe Verhalten in Prototype erreichen?
Lösung
Prototyp 1.6 bietet die „dom:loaded“ Ereignis auf Dokument:
document.observe("dom:loaded", function() {
$$('a').each(function(elem) {
elem.observe("click", function() { alert("Hello World"); });
});
});
Ich benutze auch die jede Iterator für das von zurückgegebene Array $$().
Andere Tipps
$(document).observe('dom:loaded', function() {
$$('a').invoke('observe', 'click', function() {
alert('Hello world!');
});
});
Event.observe(window, 'load', function() {
Event.observe(element, 'click', function() {
alert("Hello World!");
});
});
Natürlich müssen Sie die Elemente zuerst in Prototype „auswählen“.
Dieser Artikel gibt einen ziemlich guten Überblick über die Event-Bibliothek von Prototype.Ich denke, im Vergleich zu jQuery ist dies eine Steinzeit-API.:) :)
http://alternateidea.com/blog/articles/2006/2/8/working-with-events-in-prototype