我正在尝试在同一站点中实现Jquery的对话框的多个实例。问题是我有两个实例,我使用new'able函数启动,如下所示:
function Modal(param) {
this.modal = null;var that = this;
var init = funciton (param) {
that.setupWindow(param);
}
this.setupWindow = function (param) {
var selector = param.selector;
var params = {} // dialog options go here
this.modal = $(selector);
this.modal.dialog(params);
}
}
var f_inst = new Modal({selector: '#f_modal'});
var s_inst = new Modal({selector: '#s_modal'});
问题: 如果我调用f_inst.modal.dialog('close')或s_inst.modal.dialog('close'),此操作实际上将关闭对话框的两个实例。
这两个对话框使用两个不同的模板来渲染它们。
如果这是jquery ui对话框中的默认行为,那么有没有人有更好的解决方案?
YUI 2容器模态小部件在尝试拥有容器小部件的多个实例时非常有用。我试图找到一个提供类似功能的模态。
提前致谢。
-Eric
答案 0 :(得分:0)
我认为你想在所有情况下将其改为
function Modal(param) {
var that = this;
that.modal = null;
var init = funciton (param) {
that.setupWindow(param);
}
that.setupWindow = function (param) {
var selector = param.selector;
var params = {} // dialog options go here
that.modal = $(selector);
that.modal.dialog(params);
}
}
var f_inst = new Modal({selector: '#f_modal'});
var s_inst = new Modal({selector: '#s_modal'});
我没有对此进行测试 - 但我相信this.setUpWindow与Modal函数有关,只有一个函数,即使你新建多个实例它们引用相同的对象/函数
通过将所有内容连接到该var,您将实际获得单独的实例