我使用jQuery的mouseover事件创建了一个下拉菜单。我希望在页面加载时,如果光标位于菜单上方,则停止触发事件。
我看到的情况是,用户单击菜单项,导致相关页面加载。如果他们不移动光标,当下一个页面加载后,由于仍然悬停在菜单上方,mouseover事件会自动触发!
当这种情况发生时,用户并不知道页面已经加载;他们只是坐在那里等待。
如果您想了解我的意思,请访问www.snowrepublic.co.uk并单击例如Gloves,但不要移动光标。Gloves页面将加载,然后菜单将立即下拉。这是一个相当大的菜单,所以您可以看到混淆来自何处!
以下是我的代码:
我看到的情况是,用户单击菜单项,导致相关页面加载。如果他们不移动光标,当下一个页面加载后,由于仍然悬停在菜单上方,mouseover事件会自动触发!
当这种情况发生时,用户并不知道页面已经加载;他们只是坐在那里等待。
如果您想了解我的意思,请访问www.snowrepublic.co.uk并单击例如Gloves,但不要移动光标。Gloves页面将加载,然后菜单将立即下拉。这是一个相当大的菜单,所以您可以看到混淆来自何处!
以下是我的代码:
<script type="text/javascript">
$(document).ready(function() {
// Dropdown delay
var $over = false;
$('#header-nav li .nav').removeClass('drop');
$('#header-nav li').mouseover(function(){
$over = true;
setTimeout( function(){ if ($over == true) $('#header-nav li .nav').addClass('drop'); }, 200 );
});
$('#header-nav li').mouseout(function(){
$over = false;
setTimeout( function(){ if ($over == false) $('#header-nav li .nav').removeClass('drop'); }, 200 );
});
});
</script>
有没有办法在页面加载时停止mouseover事件的触发?
这很奇怪......我刚注意到这似乎是一个间歇性的问题。有时菜单在页面加载时不会下拉,而有时会下拉???