【发布时间】:2010-09-14 08:38:21
【问题描述】:
我有一些 javascript 并且正在动态创建一些 html。我想要做的是为每个控件添加一个事件处理程序(它们都是“输入”控件),这样如果我单击它们中的任何一个,它们都会触发相同的事件。我首先在代码的初始化部分定义一个委托,如下所示:
this.rule_event_handler = Function.createDelegate(this, this.rule_selected);
我有一个如下所示的函数,我希望在单击时调用所有控件:
rule_selected: function () {}
我添加如下所示的处理程序:
display_rules: function () {
var rulearea = $('#ruleControlArea')[0];
rulearea.innerHTML = "";
for (intI = 0; intI < this.arrRules.length; intI++) {
rulearea.innerHTML += this.create_rule_control(intI, this.arrRules[intI].display);
$addHandlers($('#rule_' + intI)[0], { 'click': this.rule_event_handler }, this, true);
}
},
然后我看到的问题是只有最后一个控件会导致 onclick 事件触发。如何更改代码以使所有控件触发相同的事件?
【问题讨论】:
标签: javascript jquery prototype