我正在开发其他人开发的网站。他们使用以下jQuery代码在菜单中生成下拉列表:
<script type="text/javascript">
var site_menu_categories_tID = null;
$(document).ready(
function(){
$("#site-menu-categories").click(
function(){
self = $(this);
$(".submenu-holder").show();
}
);
$("#site-menu-categories").mouseleave(
function(){
site_menu_categories_tID = setTimeout(function(){
$(".submenu-holder").trigger('mouseleave');
clearTimeout(site_menu_categories_tID);
site_menu_categories_tID=null;
},500);
}
);
$(".submenu-holder").mouseenter(
function(){
if(site_menu_categories_tID!=null){
clearTimeout(site_menu_categories_tID);
site_menu_categories_tID=null;
}
}
);
$(".submenu-holder").mouseleave(
function(){
self = $(this);
self.hide();
}
);
}
);
</script>
它在firefox中工作正常,但在任何IE中都没有(8及以下未在9中测试过)。您可以看到任何明显的错误吗?
答案 0 :(得分:4)
为了避免使全局范围混乱,请删除第一个self = $(this);
并将var
添加到第二个,或者只需用$(this).hide();
替换这两行
显然IE不喜欢你命名全局变量self
。