При настройке подключений dojo к onmouseover
и onmouseout
, а затем добавление содержимого на mouseover, dojo запускает событие onmouseout
сразу, так как есть новый контент. Пример:dojo connect mouseover и mouseout
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]);
});
The parent()
является <td>
, а .star
является продолжительность. Я хочу добавить изображение наведения, когда пользователь наводил на ячейку таблицы. Он работает до тех пор, пока курсор не наведет изображение, потому что это приведет к серьезному морганию. Это преднамеренно? И есть ли способ обойти это?
Edit: (., По крайней мере, как я ожидал, что он работает) Просто попробовал что-то подобное с JQuery, и он работает, как ожидалось
$(".star").parent().hover(function() {
$("span", this).append("<img src='star-hover.jpg'>");
}, function() {
$("img", this).remove();
});
Это будет показывать изображение при наведении курсора мыши, и только удалить при перемещении курсора вне ячейки таблицы.
Я бы предпочел получить изображение внутри всех узлов span.star с начала, а затем добавить класс «.hovered» в узлы
Конечно, но бывали случаи, когда нужно было добавлять элементы в состояние зависания. И, конечно, это не может быть правильное поведение? – peirix
ответ
Причина, по которой он работает с jQuery в вашем примере, заключается в том, что .hover использует нормализованные события onmouseenter/onmouseleave. Если бы вы могли подключиться к ним, это работало бы в Dojo, как ожидалось. Кроме того, моделирование .hover для Dojo будет:
Тогда вы бы просто:
Различия между mouseeneter и при наведении курсора мыши являются, почему вы видите поведение немедленно onmouseout стрельбы ,
источник
2010-04-16 13:12:21 dante
Смежные вопросы