Учитывая следующую таблицу и скрипт html, показанные ниже, у меня возникает проблема, когда появляется событие мыши после запуска мыши, даже если я не перемещаюсь мышь вне строки.jQuery: событие mouseleave, похоже, срабатывает, когда оно не должно быть
<script type="text/javascript" language="javascript">
function highlightRows(iMainID)
{
$('tr[mainid=' + iMainID+ ']').each(function() {
if ($(this).attr('old') == undefined) {
$(this).attr('old', $(this).css('backgroundColor'));
}
$(this).animate({ backgroundColor: "#FFFFCC" }, 500);
$(this).mouseout(function() {
if ($(this).attr('old') != undefined) {
$(this).animate({ backgroundColor: $(this).attr('old') }, 500);
}
});
});
}
</script>
<table>
<tr>
<td mainid="1" onmouseover='highlightRows(1)'><div>text</div></td>
<td mainid="1" onmouseover='highlightRows(1)'><div>text</div></td>
<td mainid="2" onmouseover='highlightRows(2)'><div>text</div></td>
</tr>
<table>
Вы действительно не должны настраивать обработчик «mouseout» внутри обработчика «mouseover». Настройте оба обработчика отдельно, заранее, и сделайте это с помощью jQuery вместо атрибутов элемента onfoo. – Pointy
Это случилось со мной, когда у меня были перекрывающиеся элементы. Компьютер переключается между двумя элементами и при этом входит и уходит очень быстро. –