1
我遇到了多個jQuery UI對話框的問題。我想要的是我可以有多個對話框,並且點擊類「.close-modal」的按鈕只會關閉該按鈕所在的對話框。現在,首先需要一點背景知識:在網站的「主」父項中有一個簡單的函數,它將通過點擊類「.modal」類的鏈接來打開模態對話框;一次關閉jquery-ui對話框
在父
function modal(href, title) {
var $dialog = $('<div></div>');
$dialog.html('<iframe class="modal" name="' + title + '" style="border: 0px;" src="' + href + '" width="100%" height="100%"></iframe>');
$dialog.dialog({
autoOpen: false,
modal: true,
height: 650,
width: 950,
title: title
});
$dialog.dialog('open');
$(document).bind('close-dialog', function() {
$dialog.dialog('close');
});
}
$('a.modal').click(function(event) {
event.preventDefault();
modal($(this).attr('href'), $(this).attr('title'));
}
此代碼的工作,我希望它的方式。從對話框打開一個對話框,我調用父窗口的模態函數使用正確的參數,從而使多個對話可以在父顯示:
在對話框
(function($) {
$(document).ready(function() {
$('a.modal').click(function(event) {
event.preventDefault();
parent.modal($(this).attr('href'), $(this).attr('title'));
}
/** Trigger the close-dialog event on the parent to close the current dialog. */
$('.close-dialog').click(function() {
parent.jQuery(parent.document).trigger('close-dialog');
});
});
})(jQuery);
所以,本質;我在父窗口(「close-dialog」)上定義了一個事件,可以通過iframe中的代碼調用$ dialog.dialog('close');這工作出色;我可以創建多個對話框,即使在對話框中也是如此,但問題是,一旦我點擊了button.close-dialog
,它會關閉我的對話框的全部。
是否有任何方法可以確定從哪個對話框中調用該事件?或者將事件綁定到當前對話框?
它有幫助,但不完全。我在模式窗口中有按鈕,它應該關閉它,但它們沒有。我重新設計了應用程序,以便只使用一個模式窗口,而這似乎工作。儘管我會接受你的回答,因爲它是唯一的一個:) – 2012-02-27 14:03:08
真棒,謝謝!現在我可以評論:) – Heroes182 2012-02-27 15:14:41