jquery事件清理实现

jquery事件清理实现,jquery,events,handler,Jquery,Events,Handler,嗨,我不知道从哪里开始,因为事件及其处理程序是我编程中最薄弱的环节。 正如我们所知,这是一个无限循环 我的问题是,如果函数中的代码需要超过1秒(例如:5秒)才能完成,那么在第2、第3和第n秒的时间间隔会导致脚本运行缓慢 如上所述:当您使用onclick函数单击一个元素时,它不会运行,直到它的作用域转换为 如果范围为0,是否有方法允许第一次间隔完成,然后再次运行它 换句话说,将用户的操作作为优先级 我不知道我是否讲得很有道理,但请在下面发表评论,我将尝试解释更多。setInterval将在定义的

嗨,我不知道从哪里开始,因为事件及其处理程序是我编程中最薄弱的环节。

正如我们所知,这是一个无限循环

我的问题是,如果函数中的代码需要超过1秒(例如:5秒)才能完成,那么在第2、第3和第n秒的时间间隔会导致脚本运行缓慢

如上所述:当您使用onclick函数单击一个元素时,它不会运行,直到它的作用域转换为

如果范围为0,是否有方法允许第一次间隔完成,然后再次运行它

换句话说,将用户的操作作为优先级


我不知道我是否讲得很有道理,但请在下面发表评论,我将尝试解释更多。

setInterval
将在定义的时间间隔内运行新的循环迭代,而不管内部代码需要多长时间。这是一个让浏览器陷入困境/锁定的好方法

您可以通过多种方式处理此问题,具体取决于您要查找的事件以及希望它如何流动

如果您主要在jQuery中工作,一种选择是使用jQuery的queue()方法,在其余代码完成后,让函数本身递归调用。在简单的情况下,这可能有效

如果您的代码实际上更依赖于用户,而不仅仅是使用jQuery的许多事件处理程序中的一个,如click()或bind(),在用户执行该操作时触发代码

如果没有更多信息,很难为您提供具体的解决方案。

滚动@无限循环
解释如何取消它或等待它完成后再再次运行…

请参阅:(S)他询问,如果在jQuery计时器上重复的函数所花费的时间超过计时器间隔,是否会同时运行该函数的多个实例?我不知道,但是有一个简单的方法可以找到-让一个函数编辑一个变量,然后进入一个无限循环,几秒钟后检查变量的值。@CMS在你的链接中回答:这是两个不同的函数吗?还是一整件事?正如我所说的,这些事件令人惊讶,但很难理解它们的实现。thanksalso您可以独立地同时运行设置间隔吗?基本上,设置间隔应该像处理器一样以队列顺序运行。它将检查是否已动态/ajax创建了新的匹配选择器,然后使用适当的设置分配元素。例如默认属性单击事件等。。。因此,我可以使用$('.elm')而不是在具有相同onclick=“blablabla”的每个元素上编写onclick=“blablabla”。单击(function(){//blablabla})
setInterval(function(){
   //code goes here
},1000);