延迟jquery,ready事件触发的时间

 1     $.holdReady(true);//holdReady必须在ready()方法调用之前来调用,来延迟ready()方法的执行
 2 
 3     $(document).ready(function(){
 4         console.log("开始执行。");
 5         $("div:odd").mouseover(function(){
 6             $(this).css({"width":"100px","height":"200px","background":"blue"});
 7         }).mouseout(function(){
 8             $(this).css("opacity","0.5");
 9         })
10     });
11 
12     setTimeout(function(){
13         console.log("执行成功。");
14         $.holdReady(false);//通过定时器来执行
15     },5000);
16     //这里holdReady(true)和holdReady(false)调用的次数必须相同

 

转载于:https://www.cnblogs.com/wujindong/p/5252206.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
jQuery 中,`change` 事件可能会被重复触发,这是因为它会在元素失去焦点的时候被触发,而在某些情况下,元素失去焦点的次数可能会很多。 为了解决这个问题,可以使用 `debounce` 或 `throttle` 函数来限制事件触发的次数。这两个函数都可以在一定时间内只执行一次函数,从而减少事件触发次数。 下面是一个使用 `throttle` 函数来解决 `change` 事件重复触发的示例代码: ```javascript $(document).ready(function () { // 定义 throttle 函数,限制函数在一定时间内只执行一次 function throttle(fn, delay) { var timer = null; return function () { var context = this, args = arguments; clearTimeout(timer); timer = setTimeout(function () { fn.apply(context, args); }, delay); }; } // 绑定 change 事件,使用 throttle 函数限制事件触发的次数 $('input[type="checkbox"]').on( 'change', throttle(function () { console.log('Checkbox changed.'); }, 1000) ); }); ``` 在上面的代码中,我们定义了一个 `throttle` 函数,它接受一个函数和一个延迟时间作为参数。在函数内部,我们使用了一个定时器来延迟函数的执行,如果在延迟时间内,函数被多次调用,那么只有最后一次调用能够执行。 然后,我们使用 `throttle` 函数来绑定 `change` 事件,并且设置延迟时间为 1000ms。这样,当复选框被点击时,事件只会在 1000ms 后被触发一次,从而解决了重复触发的问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值