Ошибка в Firefox используя функцию hover - jQuery
Здравствуйте!
Использую функцию hover библиотеки jQuery для обработки событий mouseover и mouseout, получаю Ошибку Error: Permission denied to access property "parentNode" только в Firefox. Чем это может быть вызвано?
<script type="text/javascript">
jQuery( "#br li.x_br" ).hover(
function() {
alert( this );
}, function() {
alert( this );
}
);
</script>
<div>
<ul id="br">
<li class="x_br"><a href="#">Меню 1</a></li>
<li class="x_br"><a href="#">Меню 2</a></li>
<li class="x_br"><a href="#">Меню 3</a></li>
<li class="x_br"><a href="#">Меню 4</a></li>
<li class="x_br"><a href="#">Меню 5</a></li>
<li class="x_br"><a href="#">Меню 6</a></li>
<li class="x_br"><a href="#">Меню 7</a></li>
<li class="x_br"><a href="#">Меню 8</a></li>
</ul>
</div>
|
root-andrey,
именно этот код сбоит? |
да.(выпадающее меню у меня с задержкой) - в качестве примера, заметил что и этого достаточно,
когда использую this или eventObject аргумент функции eventObject.currentTarget Если на один элемент то нормально обрабатывается.(например div) а это мой код для обработки выпадающего меню с задержкой
var menuTop = (function(){
var currentMenuItem;
var timerMenuOpen;
var status = false;
function toogleShowMenu_(){
if(currentMenuItem){
elemSubMenu = currentMenuItem.find(".wrapperSubMenu");
if(status){
statusSubMenu = "none";
currentMenuItem.removeClass("active");
currentMenuItem = null;
status = false;
}else{
currentMenuItem.addClass("active");
statusSubMenu = "block";
status = true;
}
if(elemSubMenu.length){
elemSubMenu.css("display", statusSubMenu);
}
}
}
function setTimerMenuShow_(eventObject){
currentMenuItem = jQuery(eventObject.currentTarget);
timerStatus = true;
timerMenuOpen = setTimeout(function() {
menuTop.toogleShowMenu();
}, 200);
}
function clearTimerMenuShow_(){
if(!status){
clearTimeout(timerMenuOpen);
currentMenuItem = null;
}
}
return {
setTimerMenuShow: setTimerMenuShow_,
clearTimerMenuShow: clearTimerMenuShow_,
toogleShowMenu: toogleShowMenu_
};
}());
$("#header_menu li.menuItem").hover(
function(eventObject){
menuTop.setTimerMenuShow(eventObject);
},
function(){
menuTop.clearTimerMenuShow();
menuTop.toogleShowMenu();
}
);
jQuery("#header_menu .closeMenu").on("click", function(event){menuTop.toogleShowMenu();});
<div id="header_menu"> <ul> <li class="menuItem"><a href="#">Меню 1</a> <div class="wrapperSubMenu"> <div class="outerWrapper"> <ul> <li class="menuItem"><a href="#">Меню 2</a></li> <li class="menuItem"><a href="#">Меню 3</a></li> <li class="menuItem"><a href="#">Меню 4</a></li> </ul> </div> </li> <li class="menuItem"><a href="#">Меню 2</a></li> <li class="menuItem"><a href="#">Меню 3</a></li> </ul> </div> </script> |
root-andrey,
не вижу проблемы, код у вас скорее всего иной, и если проблемы только с Firefox, значит где-то не поставили event. |
Цитата:
Ниже приведенный код вызывает ошибку
jQuery( "#header li.menuItem" ).hover(
function(event) {
alert( event.currentTarget );
}, function(event) {
alert( event.currentTarget );
}
);
<div id="header">
<ul>
<li class="menuItem"><a href="#">Меню 1</a>
<div class="wrapperSubMenu">
<div class="outerWrapper">
<ul>
<li><a href="#">Меню 2</a></li>
<li><a href="#">Меню 3</a></li>
<li><a href="#">Меню 4</a></li>
</ul>
</div>
</div>
</li>
<li class="menuItem"><a href="#">Меню 2</a></li>
<li class="menuItem"><a href="#">Меню 3</a></li>
</ul>
<div>
|
root-andrey,
версия jQuery? |
Цитата:
|
root-andrey,
не могу воспроизвести вашу ошибку. |
Цитата:
Ошибка получается не в этом коде. Так как запустил отдельно на чистой страничке и ошибки тоже не увидел. Я запускаю код там где на странице есть еще js обработки и вот она ошибка. Что то где портит блин :) |
над меню находиться абсолютно позиционированный элемент бегущая строка marquee, она и вызывает данную ошибку
|
| Часовой пояс GMT +3, время: 18:54. |