Я хочу инициировать событие наведения для элемента с помощью jQuery, но у меня есть полупрозрачный png, расположенный над элементом с использованием z-index. Есть ли способ сказать jQuery игнорировать png и вызвать событие наведения для элемента под ним?
Проблема с наведением jQuery из-за z-индекса
Ответы (1)
Если вы используете современный браузер, поддерживающий css3, попробуйте добавить эту строку в правило css для прозрачного png: pointer-events: none;
Это в основном говорит браузеру игнорировать все события мыши на этом элементе.
Например:
img
{
pointer-events: none;
}
https://developer.mozilla.org/en/css/pointer-events
В качестве альтернативы, если ваш целевой браузер не поддерживает css3, вы можете захватить событие мыши, а затем запустить новое для базового элемента.
например, если идентификатор вашего изображения — #img, а идентификатор базового элемента — #elem, вы можете сделать это:
$("#elem").hover(function(e){
$("#img").mouseenter(e);
});
Возможно, вам придется немного повозиться с этим в зависимости от того, как настроены ваши DOM, вот документация http://api.jquery.com/mouseenter/
person
Razor Storm
schedule
18.08.2010
Спасибо! это сработало, я полагаю, для несовременных браузеров это просто не сработает, да?
- person user424616; 19.08.2010
Я только что отредактировал свой ответ с помощью решения jQuery, которое может работать для старых браузеров :)
- person Razor Storm; 19.08.2010
классная бритва. Откуда ты знаешь такие вещи? Это то знание, которое действительно полезно и совершенно неизвестно. ГГ приятель
- person Marcel Falliere; 22.04.2011
Много копался в документации css3. :P MDC (developer.mozilla.org/en-US) — хорошее место начать.
- person Razor Storm; 28.04.2011
Хорошее решение @RazorStorm! Но div может быть над двумя другими меньшими элементами, и мы не знаем, какой div вызывает наведение курсора мыши. У вас есть идея сделать это?
- person Renan Araújo; 15.09.2015