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

一个hove还没执行完成下一个就来了!
JScript code
$(".get_item_div").hover(
            function(event){
                $.get(web_url+"qh_agent/item/item_info_div",{
                    'id':$(this).attr("item")
                    },function(data){
                        var x=event.pageX;
                        var y=event.pageY;
                        $(".body_item_info").css({left:x+"px",top:y+"px"});
                        $(".body_item_info").append(data);
                });
            },function(){
                $(".body_item_info").empty();
            }
    );


一个hover还没执行完成下一个就来了!hover没执行完下一个就来了,怎么让没执行完的跳过,不执行,直接进入下一个hover事件?

------解决方案--------------------
是我对你的需求没有理解清楚。那么,像你描述的这个场景,当鼠标快速扫过十个标签的时候,你是希望前九个①压根就不去ajax请求呢,还是②只要不显示出来就可以?

如果是②的话,其实我前面的代码应该已经是这个效果了。当然那段代码只是示意,只支持单个标签,如果十个标签的话,应该每个标签用自己的 cache 对象。

如果是①的话,应该这样:在 hover in 的时候,不要马上触发 ajax,而是用一个定时器延迟执行,而且,如果 hover out 先于定时器发生的话,就取消定时器,阻止 ajax。


————————————————————————————————
基于CSDN论坛提供的插件扩展功能,自己做了个签名档工具,分享给大家,欢迎技术交流 :)