dojo verbinden mouseover und mouseout
Beim einrichten dojo verbindungen zu onmouseover
und onmouseout
, und dann das hinzufügen von Inhalten auf mouseover, dojo feuert die onmouseout
Ereignis auf einmal, da es neuen Inhalt gibt. Beispiel:
dojo.query(".star").parent().connect("onmouseover", function() {
dojo.query("span", this).addContent("<img src='star-hover.jpg'>");
}).connect("onmouseout", function() {
dojo.destroy(dojo.query("img", this)[0]);
});
Den parent()
ist ein <td>
, und die .star
ist ein span. Ich möchte hinzufügen das hover-Bild, wenn der Benutzer mit der Maus über die Zelle in der Tabelle. Es funktioniert, solange sich der cursor nicht bewegen Sie die Bild, denn das wird dazu führen, dass einige ernsthafte blinken. Ist das absichtlich? Und gibt es eine Möglichkeit, um es?
Edit: Nur versucht, etwas ähnliches mit jQuery, und es funktioniert wie erwartet (zumindest so, wie ich es erwartet habe, zu arbeiten.)
$(".star").parent().hover(function() {
$("span", this).append("<img src='star-hover.jpg'>");
}, function() {
$("img", this).remove();
});
Dies wird zeigen Sie das Bild wenn die Maus, und entfernen Sie nur, wenn Sie den cursor aus der Zelle.
Sicher, aber es wäre Gelegenheiten, wo man möchte anfügen Elemente auf hover-Zustand. Und das kann man doch nicht sein das korrekte Verhalten?
InformationsquelleAutor peirix | 2010-04-13
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der Grund, warum es funktioniert mit jQuery in deinem Beispiel ist es da .hover verwendet die normalisierten onmouseenter/onmouseleave Veranstaltungen. Wenn Sie eine Verbindung zu denen, die es funktionieren würde, im Dojo erwartet. Auch eine simulation .hover für Dojo wäre:
Dann würden Sie nur:
Die Unterschiede zwischen mouseeneter und mouseover sind, warum Sie sehen das Verhalten einer sofortigen onmouseout feuern.
InformationsquelleAutor dante