2010-12-15 6 views
0

Ich versuche, mehrere Instanzen von Jquery's Dialogbox auf derselben Site zu implementieren. Das Problem ist, dass ich zwei Instanzen, die ich mit einer new'able Funktion initiieren etwa so:Wenn Sie mehr als ein Jquery-Dialogfeld haben und jeweils nur eine Instanz schließen,

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'}); 

Problem: wenn ich f_inst.modal.dialog nennen ('close') oder s_inst.modal.dialog ("Schließen"), schließt diese Aktion beide Instanzen des Dialogfelds.

Diese zwei Dialogfelder verwenden zwei verschiedene Vorlagen, um sie zu rendern.

Wenn dies ein Standardverhalten in JQuery-UI-Dialogfeld ist, hat jemand da draußen eine bessere Lösung?

YUI 2 Container Modal Widget funktioniert sehr gut, wenn Sie versuchen, mehrere Instanzen des Container-Widget zu haben. Ich versuche ein Modal zu finden, das ähnliche Funktionalität bietet.

Vielen Dank im Voraus.

-Eric

Antwort

0

Ich glaube, Sie dies in allen Fällen das ändern wollen

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'}); 

ich das nicht prüften - aber ich glaube, this.setUpWindow an die Modal-Funktion gebunden ist, die es gibt nur eine davon, selbst wenn Sie mehrere Instanzen neu erstellen, verweisen sie auf das gleiche Objekt/die gleiche Funktion

indem Sie alles an die Variable, die Sie tatsächlich erhalten, separate Instanzen