我是 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'
时,它说它没有定义。
那么任何人都可以帮助我吗?