我正在尝试在JQuery中创建一个函数,它可以无限期地abortTimer它们的非hover和hover状态之间的几个链接,直到我的abortTimer函数被触发。 我想在相反的时间在a.mus-plr和a.earbuds之间制作动画,所以当其中一个元素启用了’.hover’类时,另一个不启用’.hover’类。 我希望每个元素每3000毫秒在它的hover状态之间切换。 任何帮助将非常感激! 我似乎无法让这个工作。 我认为这可能是我如何定义我的setInterval计时器的问题。 谢谢!! JQuery文件: $(document).ready(function(){ var tid = setInterval(animateControls, 4000); function animateControls() { $(“a.mus-plr”).delay(2000).addClass(‘hover’).delay(2000).removeClass(‘hover’); $(“a.earbuds”).addClass(‘hover’).delay(2000).removeClass(‘hover’); } function abortTimer() { clearInterval(tid); } });
我有一个像这样的计时器设置: var timerID; $this.hover(function(){ $this.find(‘.stage_obj’).each(function(index){ var current_obj = $(this); timerID = setTimeout(function(){ animate_on_top(current_obj, index);}, parseInt(OS.delay_y_on_set[index],10)); }); }, function(){ clearTimeout(timerID); }); 有一些function可以控制hover时的动画输入/输出。 定时器充当延迟(.delay在我的情况下不起作用)。 一切正常,除了鼠标退出时没有取消计时器,仍然会触发。 这是被调用的实际animation_on函数: function animate_on_top(current_obj, index){ current_obj.animate( {‘top’:OS.ends_y_set[index]}, {duration:500, queue:false, specialEasing:{‘top’:’linear’} }); 任何人都有任何想法为什么setTimeout没有取消计时器? 谢谢!
我想将动态参数传递给setInterval函数(请参阅此处的问题),特别是@tvanfosson的注释。 但现在,如果满足某个条件,我也想禁用该计时器。 我试图将timer变量定义为全局变量,但我仍然将此计时器undefined为undefined : console.log(‘else. timer=’ + timer); : 其他。 计时器=未定义 var timer; var params={}; params.color=’light’; $(document).ready(function () { timer=createInterval(showSmallWidget, params.color, 500); }); function createInterval(f, dynamicParameter, interval) { setInterval(function () { f(dynamicParameter); }, interval); } function showSmallWidget(color) { if ($(‘#widget’).html() == ”) { //do stuff } else { console.log(‘else. timer=’ + timer); if (timer) { […]
我有一个简单的.slideDown函数: $globalTabs.find(‘.seeMore a’).live(“click”, function(){ $globalTabs.find(“.allTabs”).slideDown(‘slow’); }); 当用户点击.allTabs的时, .allTabs会执行.slideUp 。 我想要做的是,如果用户没有点击.allTabs任何.allTabs并且鼠标不再在.allTabs ,则计时器会启动等待x时间,然后执行.slideUp 。 此外,如果鼠标在.slideUp触发之前再次进入.allTabs – 则计时器停止并在鼠标移出.allTabs之外.allTabs 不知道如何接近。 任何帮助,将不胜感激。 基本标记: link 1 link 2 link 3 link 4 和: see more
我正在尝试构建一个简单的倒计时应用程序。 是否可以在setTimeout上显示计时器值,还是必须使用for循环? 谢谢!
我有一个输入字段,它有一个keyup事件: $(document).ready(function() { $(‘#SearchInputBox’).keyup(function() { DoSearch($(this).val()); }); }); 如何添加延迟时间,以便仅当用户停止键入1秒钟时,它才会运行DoSearchfunction。 我不希望每次用户键入键时都继续运行它,因为如果键入速度很快,那么它就会滞后。
我有一个与此类似的setTimeout问题。 但是这个解决方案对我没用,因为我不能在我的文件中使用php。 我的网站有一个滑块,其中包含每8秒移动一次的图像列表。但是,当我在浏览器中打开一些选项卡然后再切换回来时,它就变得疯狂了。 滑块继续一个接一个地移动图像而没有8秒的时间延迟。 我只在Chrome和最新的Firefox中看到它。 **编辑:我检查了console.log(),并且setTimeout在clearTimeout之前和之后返回相同的数字。 不知道为什么。 也许这也与它有关? ** 编辑2:我添加了一个小提琴: http : //jsfiddle.net/Rembrand/qHGAq/8/ 代码看起来像: spotlight: { i: 0, timeOutSpotlight: null, init: function() { $(‘#spotlight .controls a’).click(function(e) { // do stuff here to count and move images // Don’t follow the link e.preventDefault(); // Clear timeout clearTimeout(spotlight.timeOutSpotlight); // Some stuff here to calculate next item // […]