这可能听起来很基本,但我真的不明白.
我尝试()从事件处理程序中取消它导致我的JavaScript网页中的错误,()在调用函数时放入和不放入最后的区别是什么.
我的例子是:
document.getElementById("searchField").onkeyup = searchSuggest;
Run Code Online (Sandbox Code Playgroud)
当我换到时searchSuggest(),我的功能不起作用.
有人可以向我解释一下吗?如果我发现任何部分不清楚,请询问,谢谢.
请使用以下代码:
HTML
<button id="button>click me</button>
Run Code Online (Sandbox Code Playgroud)
JS - 版本1
window.onload = init;
function init() {
console.log('init called');
var button = document.getElementById('button');
button.onclick = buttonClickHandler;
}
function buttonClickHandler() {
console.log('button clicked');
}
Run Code Online (Sandbox Code Playgroud)
vs相同的HTML
JS - 版本2
window.onload = init();
Run Code Online (Sandbox Code Playgroud)
在这两种情况下,"init called"会立即出现在控制台中,但在第二种情况下,会出现一个错误,指出按钮为空.
这里有2件事情在玩.1)在版本1中,它等待DOM在版本2中加载2),它在DOM加载之前发生,或者看起来如此.
我的问题.请尽可能清楚地解释版本1中发生的情况与版本2中发生的情况.什么window.onload = init是vs什么window.onload = init()是技术术语?还请解释每个版本的行为.为什么1等待,但2不等?
脚本需要在按钮元素之前,例如在头部:http://jsfiddle.net/XMEjr/1/
这样做有什么区别.functionName vs this.functionName()?我对两者之间没有明确的了解.
好的,我有一个我不明白的问题.
我有一个布尔值,我测试,如果true我做了什么.但即使var是,javascript也永远不会进入true.
我试试这个:
if(isConfigD)
handleConfigurationD;
Run Code Online (Sandbox Code Playgroud)
这个 :
if(isConfigD == true)
handleConfigurationD;
Run Code Online (Sandbox Code Playgroud)
还有这个 :
if(isConfigD === true)
handleConfigurationD;
Run Code Online (Sandbox Code Playgroud)
但没有任何工作,而isConfigD总是设置true:(
我错过了什么?