相关疑难解决方法(0)

为什么setTimeout(fn,0)有时会有用?

我最近遇到了一个相当讨厌的错误,其中代码是<select>通过JavaScript动态加载的.这种动态加载<select>具有预先选择的值.在IE6中,我们已经有了修复所选内容的代码<option>,因为有时它<select>selectedIndex值与所选<option>index属性不同步,如下所示:

field.selectedIndex = element.index;
Run Code Online (Sandbox Code Playgroud)

但是,此代码无效.即使selectedIndex正确设置了字段,最终也会选择错误的索引.但是,如果我alert()在正确的时间插入声明,则会选择正确的选项.考虑到这可能是某种时间问题,我尝试了一些随机的东西,我之前在代码中看到过:

var wrapFn = (function() {
    var myField = field;
    var myElement = element;

    return function() {
        myField.selectedIndex = myElement.index;
    }
})();
setTimeout(wrapFn, 0);
Run Code Online (Sandbox Code Playgroud)

这有效!

我已经找到了解决问题的方法,但是我很不安,因为我不知道为什么这会解决我的问题.有人有官方解释吗?使用"稍后"调用我的功能可以避免哪些浏览器问题setTimeout()

javascript dom event-loop

833
推荐指数
11
解决办法
23万
查看次数

$ .focus()不起作用

jQuery focus()文档最后一个例子说明

$('#id').focus()
Run Code Online (Sandbox Code Playgroud)

应该使输入集中(主动).我似乎无法让这个工作.

即使在这个网站的控制台上,我也在尝试搜索框

$('input[name="q"]').focus()
Run Code Online (Sandbox Code Playgroud)

而我什么都没得到.有任何想法吗?

jquery

141
推荐指数
6
解决办法
15万
查看次数

设置为0毫秒时setTimeout的作用是什么?

在JavaScript中,setTimeout(callback, delay)意思是" callbackdelay毫秒之后调用".但是如果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)

这会将以下内容记录到控制台:

console_log

我希望看到AAA记录的速度要早得多.在console.log应该立即调用的函数之前,有时间执行4000个其他调用.

有人可以解释setTimeout当延迟设置为0毫秒时正在做什么吗?

javascript settimeout

41
推荐指数
1
解决办法
2万
查看次数

为什么这个javascript focus()不起作用?

我有一个index.html,其中有一个巨大的形式.该表单由此javascript提交:

byId("p").value = page;
byId("nav_container").focus();
document.forms["nav_form_main"].submit();
Run Code Online (Sandbox Code Playgroud)

焦点部分在这里不起作用......

我希望浏览器专注于页面的特定部分(几乎在顶部).

什么做的提示?

PS:我已经尝试将焦点放在submit()后面,同样的问题.

谢谢

html javascript forms

14
推荐指数
4
解决办法
3万
查看次数

标签 统计

javascript ×3

dom ×1

event-loop ×1

forms ×1

html ×1

jquery ×1

settimeout ×1