我目前正在编写一个面向对象的模块,它将回调分配给动态生成的元素。
function Instant(containerID) {
this.var1 = 0;
this.var2 = 0;
this.containerID = containerID;
// and more variables...
};
这是动态生成containerID
的 a 的 id 。我通过 Ajax 请求填充它,它读取如下文件:DIV
DIV
<!-- content.html -->
<div class="general_container">
<div class="top_container">
<!-- plenty of divs, spans etc -->
</div>
<div class="tweet_section">
<!-- plenty of divs, spans etc -->
</div>
</div>
现在重要的部分是,我分配所有回调,如下所示:
Instant.prototype.addCallbacks = function() {
$(this.containerID + " bar").click(function() {
$(this.containerID + " bar").foo();
});
$(this.containerID + " bar").click(function() {
$(this.containerID + " bar").foo();
});
$(this.containerID+ " bar").click(function(e) {
$(this.containerID + "bar, " + this.containerID+ " bar").foo();
});
});
如您所见,我总是必须this.containerID
在每个选择器之前放置以分配事件。(因此,我确保我只选择一个元素)现在,我的代码充满了混乱,因为我有很多this.containerID
s。我不知道是否有更聪明的方法可以让我的代码变得简单。任何帮助将不胜感激。
这是一个示例JSFiddle。
请注意,这不是我真正的模块,我只是为了清楚起见而编造了它!