Tag: settimeout

禁用单击事件处理程序一段时间

我已经看过类似的问题,但提供的答案涉及按钮而不是div元素。 当我单击id click div元素时, unbind()禁用click事件处理程序并将计时器设置为2秒。 2秒后,应该通过bind()再次启用click事件处理程序。 问题是click事件处理程序似乎没有“反弹”。 我将文本附加到另一个div元素以检查click事件处理程序是否处于活动状态。 这是我的jsfiddle: 的jsfiddle

使用setTimeout定期进行自动完成AJAX调用?

我想使用setTimeout函数,以便Ajax调用最多每1秒进行一次。 这就是我所拥有的。 这显然不正确,但我不确定setTimeout函数是如何工作的。 function autoComplete(q, succ) { setTimeout( if(q != “”) { $.ajax({type:”GET”, url: “php/search.php”, data: “q=”+q, success: succ }); } , 1000); } 我认为我应该使用clearTimeout,以便如果进行另一次调用,它将重置计时器并等待另一个1秒,但是当我尝试实现它时,它停止运行该函数。

经过一段时间或满足条件后运行代码

什么是编写代码的最佳和DRYest方法,可以在某个时间过去(例如,5秒)或满足某些条件(例如bool = true )时执行 – 以先到者为准 。 从脚本第一次运行开始计算五秒钟,布尔值是另一个函数更改的全局值。 我不认为你可以把时间和bool-check结合在一个陈述中,但另一个好方法也是好的。 伪代码: if (bool = true OR timePassed = 5000): runCode()

在没有闭包的情况下在setTimeout中执行jQuery成员函数的方法?

我试图沿着这些方向做点什么: setTimeout($(‘#element’).hide,3000); 这似乎很简单,但它被“这个”问题瘫痪了。 我想找到一种方法来将实际函数作为参数传递, 而不将其包装在另一个函数中 ,例如我不想这样做: setTimeout(function(){$(‘#element’).hide();},3000); 我尝试过的: setTimeout($(‘#element’).hide,3000); setTimeout($(‘#element’).hide.apply(document),3000); /* jQuery docs say that document is the default context */ setTimeout($(‘#element’,document).hide,3000); setTimeout($(document).find(‘#element’).hide,3000); setTimeout($(window).find(‘#element’).hide,3000); setTimeout($.proxy($(‘#element’).hide,document),3000); /* I know this returns a function, which I don’t want, but I have tried it */ setTimeout(($(‘#element’).hide()),3000); /* functional expression */ 我正在寻找解决这个问题的方法,但我不想把它包装在另一个函数中。 代码行越少越好。 我知道为什么这不能按预期工作,但如何在不将其包装在封闭中的情况下修复它?

jQuery show setTimeout timer

我正在尝试构建一个简单的倒计时应用程序。 是否可以在setTimeout上显示计时器值,还是必须使用for循环? 谢谢!

使用jQuery为每个事件突发运行一次函数

我正在使用jQuery来监听DOMSubtreeModified事件,然后执行一个函数。 我需要的是每个事件爆发只运行一次函数的方法。 因此,在这种情况下,事件将仅在1秒后运行,并在3秒后再次运行。 做这个的最好方式是什么? jQuery的 $(function(){ setTimeout(function(){ $(‘#container’)[0].innerHTML = ‘test’; $(‘#container’)[0].innerHTML = ‘test’; $(‘#container’)[0].innerHTML = ‘test’; $(‘#container’)[0].innerHTML = ‘test’; $(‘#container’)[0].innerHTML = ‘test’; $(‘#container’)[0].innerHTML = ‘test’; },1000); setTimeout(function(){ $(‘#container’)[0].innerHTML = ‘test’; $(‘#container’)[0].innerHTML = ‘test’; $(‘#container’)[0].innerHTML = ‘test’; $(‘#container’)[0].innerHTML = ‘test’; $(‘#container’)[0].innerHTML = ‘test’; $(‘#container’)[0].innerHTML = ‘test’; },3000); $(‘#container’).bind(‘DOMSubtreeModified’,function(){ console.log(‘event’); functionToRun(); }); }); HTML 更新 setTimeout函数只是为了模拟我的问题。 我需要一个解决方案,而无需更改setTimeout代码。 […]

jQuery setTimeout

我想为这个工具提示代码添加一个超时,所以它只显示鼠标是否在一段时间后hover在它上面而不是立即…我尝试添加setTimeout()但我无法弄清楚如何使用clearTimeout()所以工具提示不会隐藏在mouseout上。 你能帮我吗? // ———————————————– // TOOLTIP MOUSE HOVER // ———————————————– function mcTooltip() { $(‘.mcTxb’).mousemove(function(e) { var mcHoverText = $(this).attr(‘alt’); var mcTooltip = $(‘.mcTooltip’); $(mcTooltip).text(mcHoverText).show(‘fast’); $(mcTooltip).css(‘top’, e.clientY + 10).css(‘left’, e.clientX + 10); }).mouseout(function() { var mcTooltip = $(‘.mcTooltip’); $(mcTooltip).hide(‘fast’); }); } mcTooltip(); 我试过这个: // ———————————————– // TOOLTIP MOUSE HOVER // ———————————————– function mcTooltip() { $(‘.mcTxb’).mousemove(function(e) { […]

无用的setTimeout调用(参数周围缺少引号?)

我在jQuery中有这段代码 $element.parent().children().last().hide().show(‘slide’, {direction : ‘left’}, 700, function () { $element.delay(2000, function() { $element.parent().children().last().hide(‘slide’, {direction: ‘left’}, 700); reload_table(question_number); //delay ends here }); }); delay声明为: jQuery.fn.delay = function(time,func){ return this.each(function(){ setTimeout(func,time); }); }; 现在我收到错误: 无用的setTimeout调用(参数周围缺少引号?) FF3.x,Firefox 6+还可以。 有什么想法吗? 为什么会发生这种情况?

setTimeout()和设置参数

我有一些看起来像这样的jQuery代码: $(‘.mainNav2 > li’).mouseleave(function(){ var someNum = Math.random(); $(this).attr(‘id’, someNum); var t = setTimeout(“HideMenu(someNum)”, 200); $(‘li.clicked’).mouseenter(function() { clearTimeout(t); }); }); function HideMenu(id) { $(‘#’+id).removeClass(‘clicked’); } 它的目的是在鼠标离开时隐藏一个巨大的菜单,但也考虑到意外的鼠标离开,使用300毫秒setTimeout。 如果用户在300毫秒内将鼠标指针返回到li,则不会隐藏菜单,因为调用了clearTimout(t)。 问题是当用户意图捕鼠时,没有调用setTimout中的函数。 根据这个页面: http : //www.w3schools.com/js/js_timing.asp我的语法是正确的,但我只能从setTimeout中调用HideMenu函数,如果我这样写: var t = setTimeout(HideMenu, 300); 为什么它不能像写入一样工作,我可以将变量作为参数传递给函数?

$ .each()里面的setTimeout

好的,所以我有这个代码: $(this).find(‘article.loading’).each( function(i) { var el = this; setTimeout(function () { $(el).replaceWith($(‘#dumpster article:first’)); }, speed); }); 我想用另一个元素替换每个元素,但我想在每个替换之间延迟。 我无法弄清楚为什么这不起作用,它只是在一次超时后替换所有这些。 有任何想法吗? 谢谢。