我有一个下拉菜单.现在当它下滑到多个级别时,我希望在它消失之前添加等待时间为2秒,这样用户可以在.hover()错误打破时重新进入状态.
可能吗?
我的幻灯片代码:
$('.icon').hover(function() {
$('li.icon > ul').slideDown('fast');
}, function() {
$('li.icon > ul').slideUp('fast');
});
Run Code Online (Sandbox Code Playgroud) 我试图setTimeout每10秒重复一次.我知道setTimeout默认只等待然后执行一次动作.我该如何重复这个过程?
setTimeout(function() {
setTimeout(function() {
console.log("10 seconds");
}, 10000);
}, 10000);
Run Code Online (Sandbox Code Playgroud) 我想说
var minValue = 0;
if ( typeof callback == 'function' ) {
setTimeout( callback, minValue );
}
Run Code Online (Sandbox Code Playgroud)
当我用JavaScript实现回调函数时这段代码.
但我发现现代浏览器和一些旧浏览器
具有不同的最小超时值.
我知道Zero不能是最小值.
setTimeout的最小值是多少?
现代浏览器和一些旧浏览器的兼容性问题?
我需要为一个setTimeout()内部有一个调用的函数编写一个测试,但是我找不到我应该怎么做.
这是功能
// Disables all submit buttons after a submit button is pressed.
var block_all_submit_and_ajax = function( el ) {
// Clone the clicked button, we need to know what button has been clicked so that we can react accordingly
var $clone = $( el ).clone();
// Change the type to hidden
$clone.attr( 'type', 'hidden' );
// Put the hidden button in the DOM
$( el ).after( $clone );
// Disable all submit button. I use setTimeout otherwise …Run Code Online (Sandbox Code Playgroud) 在JavaScript中,setTimeout(callback, delay)意思是" callback在delay毫秒之后调用".但是如果delay是的话0呢?它应该立即打电话callback吗?
我很困惑因为我在运行以下代码时看到的内容:
setTimeout(function() {
console.log('AAA');
}, 0); // Call this in 0 milliseconds
for (i = 0; i < 1000; i++) {
console.log('BBB');
}
for (i = 0; i < 1000; i++) {
console.log('CCC');
}
for (i = 0; i < 1000; i++) {
console.log('DDD');
}
for (i = 0; i < 1000; i++) {
console.log('EEE');
}
Run Code Online (Sandbox Code Playgroud)
这会将以下内容记录到控制台:
我希望看到AAA记录的速度要早得多.在console.log应该立即调用的函数之前,有时间执行4000个其他调用.
有人可以解释setTimeout当延迟设置为0毫秒时正在做什么吗?
两个问题:
如何计算返回的值setInterval和setTimeout(用于清除计时器的值)?
这两个函数是否可以在运行时返回相同的值?例如:
var a = setInterval(fn1, 1000);
var b = setTimeout(fn2, 1000);
是否有可能a与b具有相同的价值?
第一个问题更多是关于我的知识问题,但第二个更重要.
经常在JavaScript库中看到这样的代码:
setTimeout(function() {
...
}, 0);
Run Code Online (Sandbox Code Playgroud)
我想知道为什么要使用这样的包装代码.
简单的说...
为什么
setTimeout('playNote('+currentaudio.id+', '+noteTime+')', delay);
Run Code Online (Sandbox Code Playgroud)
完美地工作,在指定的延迟后调用函数,但是
setTimeout(playNote(currentaudio.id,noteTime), delay);
Run Code Online (Sandbox Code Playgroud)
同时调用函数playNote?
(这些setTimeout()s在for循环中)
或者,如果我的解释太难阅读,这两个函数之间有什么区别?
我有一个针对iOS和Android设备的jQuery Mobile网络应用程序.应用程序的一个组件是后台任务,它定期检查a.)对本地数据的更改以及b.)与服务器的连接.如果两者都为真,则任务会推送更改.
我正在使用一个简单的基于setTimeout()的函数来执行此任务.每个失败或成功条件都会在后台任务上调用setTimeout(),确保它以30秒的间隔运行.我使用上一个任务运行时的时间戳更新状态div以进行调试.
在任何桌面浏览器中,这都可以正常工作; 但是,在iOS或Android上,经过一段时间后,任务就会停止执行.我想知道这是否与设备的省电设置有关 - 当iOS进入待机状态时,是否会终止JavaScript执行?这似乎发生了.
如果是这样,恢复的最佳方式是什么?是否有可以挂钩的唤醒事件?如果没有,还有哪些其他选项不涉及依赖于用户交互的事件(我不想将整个页面绑定到单击事件只是为了重新启动后台任务).
在浏览器中,如果您setTimeout在被调用的函数中使用,setTimeout则将强制执行最小4ms的延迟.Mozilla的开发人员wiki 描述了这种行为,并提到它已经在HTML5中变得标准化了.
Node.js的文档setTimeout没有提到最小延迟.但是,该函数的文档将其process.nextTick描述为更有效的替代方法setTimeout(fn, 0).这表明它更有效的可能性,因为它避免了这种延迟.否则setTimeout(fn, 0)可能会被优化以表现相同.
Node.js是否像web浏览器那样强制执行setTimeout的最小延迟?
settimeout ×10
javascript ×9
jquery ×2
android ×1
hover ×1
ios ×1
jasmine ×1
mobile ×1
node.js ×1
setinterval ×1
time ×1
timer ×1
unit-testing ×1