2010-12-15 4 views
0

Jqueryのダイアログボックスの複数のインスタンスを同じサイトに実装しようとしています。私はf_inst.modal.dialog(「近い」)またはs_inst.modal.dialog(呼び出す場合 :複数のJqueryダイアログボックスがあり、一度に1つのインスタンスのみを閉じる

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

問題:問題は、私は、私はそうのようnew'able機能を開始する2つのインスタンスを持っているということです'close')、このアクションは実際にダイアログボックスの両方のインスタンスを閉じます。

これらの2つのダイアログボックスは、2つの異なるテンプレートを使用してレンダリングしています。

これがjquery UIダイアログボックスでのデフォルトの動作であれば、そこに誰かがより良い解決策を持っていますか?

YUI 2コンテナウィジェットは、コンテナウィジェットの複数のインスタンスを持つときに非常に有効です。私は同様の機能を提供するモーダルを見つけようとしています。

ありがとうございます。しかし、私はthis.setUpWindowがありモーダル機能に結びついていると考えている - 私はすべてのケースで

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

私はこれをテストしていないあなたはそれにこれを変更したいと思います

-eric

答えて

0

たとえ新しいインスタンスを複数作成しても同じオブジェクト/関数を参照していても、そのオブジェクトにすべてを配線することで

実際に別インスタンスになる