#jquery #html #hover
#jquery #HTML #наведение
Вопрос:
Всем привет, я чувствую, что это не должно быть слишком сложно. Я показываю изображение в ячейке, если мышь находится над этой ячейкой.
У меня есть таблица:
<table id="selectable">
<tr>
<td><div><input type="text" id="in1" /></div></td>
<td><div><input type="text" id="in2" /><div></td>
</tr>
</table>
И функция jQuery:
$(function() {
$('#selectable td div').hover(function() {
$(this).append("<img src='img.png' />");
}, function() {
$(this).find("img").remove();
});
});
Все это отлично работает, если пользователь наводит курсор без нажатия мыши, но если мышь нажата и перемещена, изображение добавляется МНОГО раз в одну и ту же ячейку (вы можете видеть наложение) и не удаляется. Вероятно, лучше всего протестировать это, чтобы понять, что я имею в виду.
Почему? И как мне это исправить? Спасибо.
Комментарии:
1. кажется, здесь все работает нормально: jsfiddle.net/maniator/nzCRW
2. В каком браузере вы это тестировали?
3. Извините за это, я слишком упростил свой код. Проблема возникает, если в ячейке есть поле ввода текста.
4. да, кажется, работает нормально
Ответ №1:
вы можете убедиться, что есть только одно изображение
$('#selectable td div').each(function() {
var img = $("<img src='img.png' />");
$(this).hover(function() {
$(this).append(img);
}, function() {
img.detach();
});
});
Комментарии:
1. Спасибо, это решает проблему множественного добавления, но значок по-прежнему кажется «прилипающим». Есть идеи?
2. Похоже, что удерживание мыши нажатой просто полностью отменяет наведение курсора мыши… Спасибо за помощь.