jsbin:http://jsbin.com/weqitiwe/1/
您好, 世界上大多数编码器都避免扩展本机javascript对象。但是,摆脱规则总是很有趣。
部分 new 原生方法有效。但是click
事件不起作用。这是示例代码(抱歉,如果它是愚蠢的):
Element.prototype.click = function(action) {
this.addEventListener('click', action, false);
return this;
}
html:<div id="the_id">click me</div>
然后使用它:
var elm = document.getElementById('the_id');
function say() {
alert('hi');
}
elm.click(say);
目标只是能够使用elm.click(the_function);
以及elm.addEventListener('click', the_function, false);
任何帮助表示赞赏! :),
由于
答案 0 :(得分:0)
问题是您的新方法click
与HTMLElement.click
现有方法冲突(用于以编程方式触发元素点击)。
HTML元素继承自HTMLELement
,后者继承自Element
。当您在click
上创建Element
并尝试在HTML元素上触发它时,永远不会看到它,因为HTMLElement.click
会覆盖它。
使用不同的方法名称:
Element.prototype.click2 = function(action) {
this.addEventListener('click', action, false);
return this;
}
...
elm.click2(say);
<强> Fiddle 强>