日期:2014-05-16  浏览次数:20308 次

jquery 事件没有执行完 再次进入 出现问题
jquery 事件 没有执行完 然后迅速离开再进入 第二次的事件就不会走了  有解决方案吗 。。。。

            $("#menu>ul>li").hover(function () {
             $("#menu ul.menu .current .menuone").css("background-position", "right -59px");

           });
            $("#menu>ul").mouseleave(function () {

                setTimeout(function () { $("#menu ul.menu .current .menuone").css("background-position", "right -194px"); $("#menu>ul>li.current a span.menuone").css("color", "#DC291E"); }, 220);
            });

jquery javascript

------解决方案--------------------
试试,加了清除定时器

var tir=0;
$("#menu>ul>li").hover(
  function () {
     clearTimeout(tir);
    $("#menu ul.menu .current .menuone").css("background-position", "right -59px");
  },
  function () {
   tir=setTimeout(function () { $("#menu ul.menu .current .menuone").css("background-position", "right -194px"); $("#menu>ul>li.current a span.menuone").css("color", "#DC291E"); }, 220);
  }
);



------解决方案--------------------
引用:
jquery 事件 没有执行完 然后迅速离开再进入 第二次的事件就不会走了  有解决方案吗 。。。。
JavaScript code?12345678            $("#menu>ul>li").hover(function () {             $("#menu ul.menu .current .menuone").css("backgrou……


hover是给mouseover和mouseout都绑定事件,你要的是这个效果吗,现在你相当于绑定了两个mouseleave事件,试试这样


var timer;
clearTimeout(timer);
$("#menu>ul>li").mouseenter(function () {
             $("#menu ul.menu .current .menuone").css("background-position", "right -59px");
 
           });
            $("#menu>ul").mouseleave(function () {
 
                timer = setTimeout(function () { $("#menu ul.menu .current .menuone").css("background-position", "right -194px"); $("#menu>ul>li.current a span.menuone").css("color", "#DC291E"); }, 220);
            });