// param {name:'name', click : function(ev[,arg1, arg2] ){}, focus:function(ev[,arg1, arg2] ){} }
ToggleButton = function(params) {
var btn = document.getElementId(params.name);
// how to hook the above click function passed using
// params and pass additional params along with it like function(ev[,arg1,arg2])
btn.onclick = params.click;
}
我正在尝试实现扩展链接按钮以充当切换按钮。现在我希望能够按照上面指定的方式附加事件,但我不知道如何将其附加到按钮以便我可以享受如下代码?
new ToggleButton({name: 'toggle1', "click" : function(evt, obj1, obj1){
//function body
}
});
最佳答案
我会这样做:
<a href="foo.html" id="toggle1">Toogle</a>
var ToggleButton = function(params) {
var btn = document.getElementById(params.id);
var evt = 'on' + params.evt;
btn[evt] = params.action;
return;
}
ToggleButton({
id: 'toggle1',
evt: 'click',
action: function(evt){
var clickedElement = this;
alert('My href is '+ clickedElement.getAttribute('href'));
// Prevent the browser from following the href,
// just in case you set this attribute
var e = evt || window.event;
e.preventDefault();
}
});
关于javascript - 如何将函数附加到事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4944004/