我已經定義了一個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