我想将事件附加到按钮上,如果用户点击,则会显示警告。但在这里,即使用户没有点击,也会出现警告。
Js档案:
var init = function (m) {
_m = m;
var actionButton = document.getElementById("action");
if (actionButton) {
var buttonId = "action";
if (actionButton.attachEvent) {
actionButton.attachEvent("onclick", _onActionClick(buttonId));
}
}
var _onActionClick = function (buttonId) {
alert("3");
}
在这里,我得到警报3。
但是,使用此代码,我不会收到警报3。
var init = function (m) {
_m = m;
var actionButton = document.getElementById("action");
if (actionButton) {
var buttonId = "action";
if (actionButton.attachEvent) {
actionButton.attachEvent("onclick", _onActionClick);
}
}
var _onActionClick = function (){
alert("3");
}
有人可以告诉我哪里出错了吗?
答案 0 :(得分:0)
onclick
需要一个功能。您使用_onActionClick(buttonId)
的返回值undefined
// no good!
actionButton.attachEvent("onclick", _onActionClick(buttonId));
尝试使用实际功能
actionButton.attachEvent("onclick", function(event) {
_onActionClick(buttonId)
})
或者您可以用咖喱形式定义_onActionClick
var _onActionClick = function(buttonId) {
return function(event) {
console.log(buttonId, event)
}
}
// now when you call _onActionClick(buttonId) it will return a function ...
actionButton.attachEvent("onclick", _onActionClick("action"))