2011-10-19 102 views
0

是否可以在JQuery对话框中定义一个变量并在其事件中使用它。例如。在这个例子中:在JQuery对话框中存储对象

element.find(".dialog").dialog(
{ 
    title: settings.title, 
    close: function() { 
     $(this).remove(); 
    }, 
    open: function() { 
     var map = new Map(); 
    }, 
    height: $(window).height()/1.5, 
    width: $(window).width()/1.5, 
    resize: function() { map.updateSize(); } 
}).dialogExtend({ 
    "maximize": true, 
    "events": { 
     "maximize": function() { map.updateSize(); }, 
     "restore": function() { map.updateSize(); } 
    } 
}); 

我想用地图变量resize事件,但我得到的是说,地图是没有定义的错误。我怎么解决这个问题?

回答

2

试试下面的片段在相应的地方:

替换开放:

"map" : new Map() 

而且

"maximize": function (evt, dlg) { dlg.map.updateSize(); }, 
"restore": function (evt, dlg) { dlg.map.updateSize(); } 

通过XSL编辑:这为我工作:

this.map = new Map(); 

和:

"maximize": function() { this.map.updateSize(); }, 
"restore": function() { this.map.updateSize(); } 
+0

我得到那个说dlg.map是未定义的错误。 – xsl

+0

更新了我的答案,请尝试 – Ankur