我已经定义了一个JavaScript“弹出窗口”使用类似的代码级以下:调用类方法 - jQuery的
function Popup(strPopContID)
{
this.strPopupContaineriD=strPopContID;
/* code creates popup with ID equal to value of strPopContID with 'close button' in
the top bar of popup with class 'CloseButton'*/
classThisPopup=this;
$('#'+this.strPopupContaineriD+' .CloseButton').click(function(){
classThisPopup.ClosePopup();
})
this.ClosePopup=function(){
$('#'+this.strPopupContaineriD).remove();
}
}
现在,如果我创造我的类的两个实例:
Popup1 = new Popup('FirstContainer');
Popup2 = new Popup('SecondContainer');
我可以使用Popup1.ClosePopup()和Popup2.ClosePopup()关闭它们,但单击关闭按钮只会关闭一个框。我似乎明白,从JQuery调用ClosePopup作为'click'选项会弄乱变量作用域,这就是为什么我的'ClosePopup'函数只对创建的最新弹出窗口产生反应的原因,但是有什么办法可以解决这个问题,而无需通过任何“ClosePopup”的参数?
在构造函数中Popup1 = new Popup();不应该使用Popup1 = new Popup(“mypopup1”)等参数; – 2013-02-11 13:21:30
是的,这只是我在发布问题时错过了,容器名称在我的代码中创建的很好。编辑。 – user2061056 2013-02-11 13:28:14