Tag: settimeout

为什么settimeout没有延迟函数执行?

function tryToDownload(url) { oIFrm = document.getElementById(‘myIFrm’); oIFrm.src = url; // alert(url); // url=escape(url); setTimeout(deletefile(url), 25000); } 以下是deletfile函数 function deletefile(url){ $.ajax({ type:’post’, url: “”, data:{filename:url}, type : “GET”, timeout : 20000, dataType : “text”, success : function(data) { alert(“success”); } }); } 上面是我的jQuery和我在25秒后调用一个函数,但有些如何不延迟deletefile(url)函数并执行刚刚执行。那么应该是什么问题?

jQuery .removeClass()没有做任何事情的奇怪问题

我有一些代码将类添加到元素,然后尝试删除它们,并在1秒后添加不同的类。 我得到一些非常奇怪的行为,我甚至无法在一个简单的jsfiddle示例中重现。 这是我的相关JavaScript代码: console.log(‘before destroyed: ‘ + currentTile.get(0).className); currentTile.addClass(classes.destroyed); console.log(‘after destroyed: ‘ + currentTile.get(0).className); setTimeout(function () { console.log(‘before blanking: ‘ + currentTile.get(0).className); currentTile.removeClass().addClass(classes.blank + ‘ ui-draggable’); console.log(‘after blanking: ‘ + currentTile.get(0).className); }, 2000); 以下是控制台的说法: 正如您所看到的,添加被destroyed类工作正常,但是对setTimeout内部的removeClass()的调用似乎什么也没做,然后是.addClass(classes.blank + ‘ ui-draggable’); 也似乎工作正常。 另外,如果我将一个类传递给removeClass它会删除那个没有问题的类。 如果是上下文问题或者currentTile是错误的元素,我会认为addClass也会失败吗? 任何人都知道这里发生了什么? 附加信息:jQuery最新(我认为v.1.9.0),jQuery UI v 1.10.0,Chrome v.24.0.1312.56 m 编辑 :问题似乎与jQuery UI直接相关,并且可以在这个小提琴中看到发生。 编辑2 :这被确认为jQuery中的一个错误 ,并已得到修复。

如果ajax少于X秒,如何延迟显示进度?

我在页面上有几个AJAX调用。 有些完成,其他人需要一些时间 – 所有这些都取决于点击的内容。 我想添加一个“加载器”,它将在XAX之后显示,同时AJAX正在处理结果。 我有一台装载机工作: $(document).ajaxStart(function() { $(“#loader”).css(“display”,”block”); }).ajaxSuccess(function() { $(“#loader”).css(“display”,”none”); }); 这个function。 然而,当AJAX请求很快时,它会在屏幕上闪烁 ……就像眨眼间一样。 除了发生的“眨眼”之外,它的效果很好。 因此,我试图将加载程序css更改延迟几秒钟,以便快速结果不会导致“闪烁”。 我试图使用setTimeout和jQuery队列来延迟事情…… a la: $(document).ajaxStart(function() { $(“#loader”).queue(function(){ $(this).delay(5000); $(this).css(“display”,”block”); $(this).dequeue(); }); }).ajaxSuccess(function() { $(“#loader”).css(“display”,”none”); }); 要么: $(document).ajaxStart(function() { setTimeout(function() { $(“#loader”).css(“display”,”block”); }, 5000); }).ajaxSuccess(function() { $(“#loader”).css(“display”,”none”); }); ( 延迟jquery css的变化 ) 要么: $(document).ajaxStart(function() { $(“#loader”).delay(5000).css(“display”,”block”) }).ajaxSuccess(function() { $(“#loader”).css(“display”,”none”); […]

简单的jquery下拉列表 – clearTimeout,setTimeout问题

HTML: One Two Three A B C jQuery的: var timeout = null; $(document).ready(function() { $(“ul.topnav li”).mouseover(function() { if (timeout) clearTimeout(timeout); $(this).find(“ul.subnav”).slideDown(‘fast’).show(); }).mouseout(function() { timeout = setTimeout(closemenu, 500); }); // sub menu mouseovers keep dropdown open $(“ul.subnav li”).mouseover(function() { if (timeout) clearTimeout(timeout); } ).mouseout(function() { timeout = setTimeout(closemenu, 500); // alert(timeout); }); // any click closes […]

jquery hover和setTimeout / clearTimeOut

我正在尝试用子菜单做菜单。 这是我想要做的。 在hover链接(#mylink)时,我想在它下面显示一个div(让我们称之为“#submenu”)。 在鼠标离开此链接时,想要在5秒后执行一个function。 在这个5秒的间隔中,如果我将我的div(#submenu)hover,我想要clearTimeout。 所以这个div在5秒后不会消失。 这是我的代码: $(document).ready(function() { $(“#mylink”).hover( function () { $(‘#submenu’).show(); }, function() { var timer = setTimeout(function(){$(‘#submenu’).hide();}, 5000); } ); $(“#submenu”).hover( function () { clearTimeout(timer); }, function() { $(‘#submenu’).show(); } ); }

setTimeout不适用于safari mobile

我有一个function,当点击它时显示一个菜单,我希望它在5秒后消失。 这是我的javascript – 它可以在桌面浏览器上正常运行,但它不会在移动设备上消失。 $(function() { $(‘#prod_btn’).click(function() { $(this).addClass(‘selected’).next(‘ul’).css(‘display’, ‘block’); setTimeout(hideMenu, 5000); }); }); function hideMenu() { $(‘#prod_btn’).removeClass(‘selected’).next(‘ul’).css(‘display’, ‘none’); } 问题出在哪儿? 谢谢

javascript与SetTimeout一起睡觉

我正在尝试发送延迟10秒的电子邮件。 我写了这段代码: $(document).ready(function() { for (i = 0; i < 20; i++) { setTimeout("SendEmail(" + i + ")", 5000); } }); function SendEmail(id) { $.get("mimesender.php?id=" + id, function(data) { var toAppend = " ” + data + “” $(“#sentTo”).append(toAppend); }); } 服务器端代码(php)获取id并从数据库中选择具有指定id的电子邮件 $query=”select email from clienti where id =”.$id; 然后发送电子邮件,并发回当前的电子邮件 echo email; 但是,这里出了点问题。 似乎js函数等待5秒,然后一次显示所有20个电子邮件地址。 你能告诉我我做错了什么吗? […]

setTimeout不能使用jquery.each,这个

我试图在迭代表格的单元格时在jquery .removeClass调用之间添加延迟。 单元格没有setTimeout正确显示,但是使用setTimeout代码中断。 我究竟做错了什么? function reveal_board() { $(“td”).each(function() { var t=setTimeout(‘$(this).removeClass(“invisible”)’, 500); }); }

setTimeOut()或setInterval()。 4种方法应用相同的东西。 哪个最好?

我正在显示一个关于给定的终结时间的倒计时表。 虽然它的工作完美,但我想知道哪种方法最适用。 下面是我的倒计时function。 var timerId; var postData = {endDate : endDate, tz : tz}; var countdown = function() { $.ajax({ type : ‘post’, async : false, timeout : 1000, url : ‘./ajax_countdown.php’, data : $.param(postData), dataType : ‘json’, success : function (resp){ $(‘#currentTime’).html(resp.remainingTime); } }); } 我想要的是每1秒后自动调用一个函数(倒计时),如果它在1秒内没有执行/完成,则取消当前的ajax并启动一个新的ajax调用。 现在我发现有4种工作方法 方法1:将setInterval()与window对象一起使用 window.setInterval(countdown, 1000); 方法2:独立使用setInterval() setInterval(function() {countdown()}, 1000); […]

在循环多个变量时使用setTimeout更新进度条

假设您有3个要循环的数组,长度为x,y和z,并且对于每个循环,您需要更新进度条。 例如: function run() { x = 100; y = 100; z = 10; count = 0; for (i=0; i<x; i++) { //some code for (j=0; j<y; j++) { // some code for (k=0; k<z; k++) { //some code $("#progressbar").reportprogress(100*++count/(x*y*z)); } } } } 但是,在此示例中,进度条在函数完成之前不会更新。 因此,我相信我需要使用setTimeout在函数运行时更新进度条,虽然我不知道如何在嵌套for循环时这样做。 我是否需要将每个循环分解为自己的函数,还是可以将它们作为循环嵌套? 我创建了一个jsfiddle页面,以防你想运行当前函数: http : //jsfiddle.net/jrenfree/6V4Xp/ 谢谢!