每次鼠标悬停触发一次 jquery 效果
Fire jquery effect once for each mouseover
如何在
鼠标悬停时首次执行jquery效果后停止它?我希望盒子反弹一次并停止,即使鼠标留在盒子内,每次鼠标回到盒子时重复此操作。目前,当鼠标在盒子内时,它会无限运行效果。提前谢谢。
我在jsfiddle上做了一个例子
我试过了: one("mouseover", function() { $( "#div1" ).effect("bounce", "slow"); });
但是,当您离开盒子并重新进入盒子时,这不会再次触发事件。
>.one()
工作:
$( "#div1, #div2" ).one('mouseover', function() {
$(this).effect("bounce", "slow");
});
演示:http://jsfiddle.net/Rxhzg/1/
更新(基于更新的问题)
如果"鼠标悬停一次"是指"一次反弹" - 添加times
参数:
$( "#div1, #div2" ).mouseenter(function() {
$(this).effect("bounce", { times: 1 }, "slow");
});
演示 2 http://jsfiddle.net/Rxhzg/4/
$( "#div1, #div2" ).one('mouseover', function() {
$(this).effect("bounce", { times: 1 }, "slow");
});
$( "#div1, #div2" ).mouseleave(function() {
$(this).one('mouseover', function() {
$(this).effect("bounce", { times: 1 }, "slow");
});
});
检查此 http://jsfiddle.net/Rxhzg/6/
或者 http://jsfiddle.net/Rxhzg/8/检查这个,因为如果鼠标在盒子底部,上面的鼠标将继续反弹。
$( ".parentDiv" ).one('mouseover', function() {
$(this).find('.navBox').effect("bounce", { times: 1 }, "slow");
});
$( ".parentDiv" ).mouseleave(function() {
$(this).one('mouseover', function() {
$(this).find('.navBox').effect("bounce", { times: 1 }, "slow");
});
});
此示例与其他
答案类似,但它将原始绑定抽象为函数以实现可重用性。
var $target = $( "#div1, #div2" );
function bounce() {
$target.one('mouseover', function () {
$(this).effect("bounce", { times: 1 }, "slow");
});
}
$target.on('mouseout', bounce);
bounce();
相关文章:
- Javascript返回值只在循环中返回一次
- Jquery FadeIn FadeOut 只工作一次
- Javascript html每点击一次就会更改url
- 如何在chrome扩展中存储数据/结果,以及如何使用setTimeout使其只被调用一次
- Rails操作只调用一次,但我在ajax中每秒钟都调用一次
- jQuery滚动功能只工作一次
- 刷新导致我的帖子“;张贴“;再一次
- 引导程序崩溃一次只能看到一个
- 有没有一个抽象层,这样我就可以集成一次,然后使用pusher、pubnub或faye
- 加载器组件仅加载一次
- 根据Angular.JS上一次的内容禁用选择
- 一次又一次地在新的和相同的选项卡中打开一个url
- 只在宽度以下和宽度以上各准备一次
- 如果30秒未单击,请应用CSS一次,将其删除,然后重新迭代
- InternetExplorer7 8:jQuery UI效果只起作用一次
- 每次鼠标悬停触发一次 jquery 效果
- 使slideToggle一次只产生一个元素的效果
- Jquery链接效果在每次页面加载时只起作用一次
- 脚本效果出现过一次
- Javascript一次对两种效果进行样式化