作者grence (多想两分钟 = =")
看板Ajax
标题Re: [问题] 延迟 onmouseover 的效果
时间Sun Feb 28 04:22:19 2010
※ 引述《l8 (%)》之铭言:
: ※ 引述《statue (statue)》之铭言:
: : 我有个网页上面有许多的连结, 而几乎每个连结都有 onmouseover 的效果,
: : 效果的产生是透过 ajax 去抓资料, 写入某个 div, 然後在呈现.
: : function show(event, id) {
: : initFrm(); // 清空准备显示的
: : retrieveURL("hover.php?id="+id); // 用 ajax 抓取资料
: : showFrm(event, "Frm"); // 将该 Frm 设定为 block 显示
: : }
: : 可是我希望 show() 可以延迟 1 秒後才执行, 因为画面上得物品太多,
: : 滑鼠滑过去会造成一次执行很多个 ajax, 造成系统效能不太好.
: : 有什麽建议改善的方式嘛? 我想到的方式是当 onmouseover 的时候延迟执行 show(),
: : 但是当延迟没结束就离开的时候该怎麽判断?
: 今天爬文後发现三年前的这个问题
: 我目前做到的瓶颈跟statue一样
: 希望可以让滑鼠在图片上面停留个1秒
: 才去抓取资料
: 太快速的滑鼠移动 就把它忽略过去
: 让系统跑起来顺一点
: 不知道这个问题该怎麽解决呢?
var timeId=null;
$('img').mouseover(function(){
if(timeId!==null){//有 timeId就清掉,然後重设
clearTimeout(timeId);
timeId=null;
}
timeId=setTimeout(function(){
yourFunction();
timeId=null;
}, 1000);
})
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 123.194.46.184
1F:推 l8:感恩 02/28 15:52