【发布时间】:2013-08-26 12:08:07
【问题描述】:
我是 Javascript 中的 OOP 新手,我一直在更改我的一些旧代码以制作可重用的代码。我决定将它们而不是一些内联代码变成一些 Javascript 类。
这是我的课:
function TreeStructure(psi, csi, csc, kwargs) {
this.parentSelectorId = psi;
this.childrenSelectorId = csi;
this.childrenSelectorClass = csc;
kwargs = (typeof kwargs === "undefined") ? 'NoOptionalArguments' : kwargs;
// First Question
$('#' + this.parentSelectorId).click(this.parentSelectHandler());
// Second Question
$('#' + this.parentSelectorId).on('click', this.parentSelectHandler(e));
};
TreeStructure.prototype.parentSelectHandler = function () {
alert("Why is it called after page loads ?!?
it's attached to a click handler huh?");
}
以及类的用法:
$(document).ready(function(){
tree = new TreeStructure('blahId', 'blahId', 'blahClass');
});
但是在运行此程序时,会发生意外事件(对我而言)。所以这是我的两个问题:
- 为什么在页面加载后调用
parentSelectHandler函数? (我认为预期的行为是在单击选择器后调用) - 在 jQuery 事件处理程序中,我可以获取事件并将其传递给事件处理程序函数,但是当我尝试传递
parentSelectHandler、参数'e'时,它说它没有定义。
那么谁能帮帮我?
【问题讨论】:
标签: javascript jquery class oop jquery-events