Хранение объектов в диалоговых окнах jQuery

#jquery #jquery-ui #events #jquery-ui-dialog

#jquery #jquery-пользовательский интерфейс #Мероприятия #jquery-ui-dialog

Вопрос:

Можно ли определить переменную в диалоговом окне 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(); }
    }
});
  

Я хочу использовать переменную map в событии изменения размера, но я получаю сообщение об ошибке, в котором говорится, что карта не определена. Как я могу решить эту проблему?

Ответ №1:

Попробуйте использовать приведенные ниже фрагменты в соответствующих местах:

Заменить open на:

 "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(); }