Javascript 使用构造函数和调用函数
我有一个表单,根据选中的复选框隐藏/显示很多元素。我决定写一个构造函数来避免重复。它需要两个参数。需要显示/隐藏的复选框和元素Javascript 使用构造函数和调用函数,javascript,jquery,oop,Javascript,Jquery,Oop,我有一个表单,根据选中的复选框隐藏/显示很多元素。我决定写一个构造函数来避免重复。它需要两个参数。需要显示/隐藏的复选框和元素 function ShowHideConstructor(controlElement, actionElement){ this.x = controlElement; this.y = actionElement; x.change(function(){ var isChecked = x.is(":checked"); if (isC
function ShowHideConstructor(controlElement, actionElement){
this.x = controlElement;
this.y = actionElement;
x.change(function(){
var isChecked = x.is(":checked");
if (isChecked){
y.show();
} else {
y.hide();
}
});
}
我想通过以下方式启动它:
var ce = $('#c85_add_residence_address-0');
var ae = $(".address_of_residence");
ShowHideConstructor(ce,ae);
它起作用了!当我第二次调用它时会出现问题,如:
var ca = $('#c85_add_correspondence_address-0');
var ac = $('.address_for_correspondence');
ShowHideConstructor(ca,ac);
当我有两个时,它就断了。为什么? 这是因为您忘记了
新的
,所以此
是外部的此
(取决于您调用它的位置,它可能是窗口
)。第二次调用时,替换第一个的x和y属性
使用
在构造函数中,将所有x
和y
替换为this.x
和this.y
也就是说,当您甚至不保留新实例时,这种对构造函数的副作用并不是一种特别好的做法。我宁愿分两步完成:构建实例,然后执行绑定到
change
事件的函数。谢谢!现在,当我在x.change(function(){..}上添加'new'时,我得到了'uncaughtreferenceerror:x未定义'。使用this.x.change…
而不仅仅是x.change…
。使用(this.x.change)和(this.x.is(“:checked”);)现在它告诉我(不能调用this.x.is(“:checked”);)上未定义的方法'is'))
new ShowHideConstructor(ca,ac);