Проблема с наведением jQuery из-за z-индекса

Я хочу инициировать событие наведения для элемента с помощью jQuery, но у меня есть полупрозрачный png, расположенный над элементом с использованием z-index. Есть ли способ сказать jQuery игнорировать png и вызвать событие наведения для элемента под ним?


person user424616    schedule 18.08.2010    source источник


Ответы (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
comment
Спасибо! это сработало, я полагаю, для несовременных браузеров это просто не сработает, да? - person user424616; 19.08.2010
comment
Я только что отредактировал свой ответ с помощью решения jQuery, которое может работать для старых браузеров :) - person Razor Storm; 19.08.2010
comment
классная бритва. Откуда ты знаешь такие вещи? Это то знание, которое действительно полезно и совершенно неизвестно. ГГ приятель - person Marcel Falliere; 22.04.2011
comment
Много копался в документации css3. :P MDC (developer.mozilla.org/en-US) — хорошее место начать. - person Razor Storm; 28.04.2011
comment
Хорошее решение @RazorStorm! Но div может быть над двумя другими меньшими элементами, и мы не знаем, какой div вызывает наведение курсора мыши. У вас есть идея сделать это? - person Renan Araújo; 15.09.2015