У меня есть кнопка обновления (на самом деле png-изображение), на которую пользователь может навести курсор мыши, перевернув ее от серого до синего. При щелчке по обновлению изображение меняется на кнопку воспроизведения, которая демонстрирует подобное изменение цвета, за исключением случаев, когда вы нажимаете на изображение воспроизведения, оно должно переключиться обратно на исходное изображение обновления.Конфликтующие события на одном и том же объекте
Проблема заключается в том, что после нажатия на обновленное изображение, когда я нажимаю на воспроизводимое изображение, не удаляя мышь с изображения, он не возвращается к обновленному изображению.
Я уже рассмотрел остановку распространения событий.
Вот мой код:
$('#refresh').click(function (event) {
if (!tMinusZero) {
$('#refresh').html("<img src='play_small_hover.png'>");
tMinusZero = true;
event.stopImmediatePropagation();
} else {
$('#refresh').html("<img src='refresh_small_hover.png'>");
tMinusZero = false;(
event.stopImmediatePropagation();
}
});
$('#refresh').hover(function() {
if (!tMinusZero) {
$('#refresh').html("<img src='refresh_small_hover.png'>");
} else {
$('#refresh').html("<img src='play_small_hover.png'>");
}
}, function() {
if (!tMinusZero) {
$('#refresh').html("<img src='refresh_small.png'>");
} else {
$('#refresh').html("<img src='play_small.png'>");
}
});
Некоторые интересные вещи, которые я заметил, при попытке отладки:
- Если переместить мышь через #refresh слишком быстро парения будет «придерживаться», т.е. подразумеваемая мышь не будет срабатывать.
- Комментирование кода наведения устраняет проблему с нажатием кнопки.
- Оставляя код наведения, если я нажимаю внешний вид изображения, но внутри div, не удаляя мышь из div, исправляет проблему щелчка.
- Удаление мышью из div перед повторным щелчком устраняет проблему с нажатием кнопки.
- После щелчка по изображению изображение, которое оно изменит, будет мерцать между изображением наведения и не-hover, если я надвигаю его на мышь, но не если я сначала удалю мою мышь из div.
- Когда у меня возникает проблема с нажатием кнопки, изображение с нарушением будет мгновенно мерцать, как если бы оно переключилось на одно из изображений, отличных от наведения, а затем быстро изменилось на оскорбительное изображение.
Мне кажется, что мои два обработчика событий имеют противоречивые интересы, но прекращение распространения событий, похоже, не помогает.
вы можете сделать демо здесь.? www.jsfiddle.net –
Проблема не со мной (http://jsfiddle.net/45R95/) –
@RajaprabhuAravindasamy Ах, да. Я обязательно буду в следующий раз. Я надеялся, что это будет простое семантическое исправление, и не потрудился создать скрипку для других, с которыми можно было бы возиться. Хороший звонок. –