这是有问题的代码段:Javascript没有响应元素点击?
...
var btnClick = document.getElementById("button");
btnClick .addEventListener("click", func, false);
}
function func()
{
alert("This works");
}
我没有得到任何警告框。看到任何问题?
这是有问题的代码段:Javascript没有响应元素点击?
...
var btnClick = document.getElementById("button");
btnClick .addEventListener("click", func, false);
}
function func()
{
alert("This works");
}
我没有得到任何警告框。看到任何问题?
您正在使用哪种浏览器? IE不支持.addEventListener()
直到9版本,所以你需要说的是这样的:
var btnClick = document.getElementById("button");
if (btnClick.addEventListener){
btnClick.addEventListener('click', func, false);
} else if (btnClick.attachEvent){
btnClick.attachEvent('onclick', func);
}
// and if you're really keen:
else {
btnClick.onclick = func;
}
不要尚未解析又一个元素上使用.getElementById()
,即,把上面的代码要么在document.ready或load事件处理程序中,或放在页面源中的元素之后。
如果这样做以下所有的,这将工作:
addEventListener
的较新浏览器中运行此代码(旧版本的IE不支持该代码)。id="button"
一致。btnClick
之前的空格.addEventListener
。你可以看到它在这里工作:http://jsfiddle.net/jfriend00/HQ24Z/,因为你没有初始化它的原因
它.... !!!
window.onload = prepareButton;
function prepareButton()
{
document.getElementById('button').onclick = function()
{
alert('you clicked me!');
}
}
不能使用onlick ...赋值方向 – antonpug
不要使用非常通用的术语,如'按钮',因为它们往往是保留的,如果您完全确定它应该起作用,您最终会抓紧你的头发。使用id属性的描述性值,例如'form_4_button_submit'。
还怎么做跨浏览器事件处理的例子...
if (window.addEventListener) {document.addEventListener('keydown',keyPressed,false);}
else {document.attachEvent('onkeydown',keyPressed);}
function keyPressed(evt)
{
var e = evt || event;
var key = e.which || e.keyCode;
switch (key)
{
case 77:// M
alert('m key pressed');
break;
case 76://L
alert('L key pressed');
break;
}
}
你看到在你的JavaScript控制台的任何错误?另外,您确定控制流是否会通过添加事件侦听器的代码? – dyoo
语法是正确的,它是你的HTML的问题,或者你的JavaScript有另一个错误,导致这段代码永远不会运行。 –