我在一个页面上有12个对话框。如果其他12个对话框均未打开,我只希望它们打开。我不希望它关闭现有的并打开一个新的,我只希望它一次只打开一个对话框,并停止用户能够一次打开两个对话框。jquery对话框 - 页面上的多个对话框,一次只打开一个对话框
样本HTML:
<div id="thumb2" class="suiting-thumb">
<img src="img/gallery/suit1-thumb.jpg" alt="" title="" />
</div>
<div id="galleryDialog2" class="galleryDialog">
<a id="prev-arrow" href="#"></a>
<a id="next-arrow" href="#"></a>
<div class="text">
text and link
</div>
<div class="dialog-slider">
<img src="img/suiting-details/custom-suiting-vent-styles.jpg" alt="" title="" />
<img src="img/suiting-details/custom-suit-coat-lining.jpg" alt="" title="" />
</div>
</div>
JS:
/* Gallery Dialog Settings */
$('[id^=galleryDialog]').dialog({
width: 480,
height:479, /* 479 seems to be the magic number to get the box to fit vertically on the slider */
show: 'fade',
hide: 'fade',
autoOpen: false,
draggable: false,
open: function() {
$('#four').stop().fadeTo("fast", 0.3);
$('.suiting-thumb').stop().fadeTo("fast", 1.0);
$("a#prev").attr("id","prev-false");
$("a#next").attr("id", "next-false");
$('.suiting-thumb').attr('class', 'suiting-thumb-false');
},
close: function() {
$('#four').stop().fadeTo("normal", 1);
$("a#prev-false").attr("id","prev");
$("a#next-false").attr("id", "next");
$('.suiting-thumb-false').attr('class', 'suiting-thumb');
}
});
$('.suiting-thumb').click(function() {
//strip off prefix of thumb id to get number for dialog
var thumbBtnIdPrefix = 'thumb';
var thumbBtnNum = $(this).attr('id').substring((thumbBtnIdPrefix.length));
if(!$('.galleryDialog').dialog("isOpen")) {
$('#galleryDialog' + thumbBtnNum).dialog('open').dialog('widget').position({
at: 'center center',
of: $('#slider'),
offset: "75 0"
});
}
});
我试图用一个if statemenet是checka,看看是否 “.galleryDialog”,适用于所有的对话框的div类,没有打开。如果未打开,请打开点击的对话框。无论何时打开“galleryDialog1”,此功能都能正常工作,但是当我关闭第一个并打开另一个时,您可以一次打开任意多个。
任何帮助将是惊人的。谢谢!
也许你可以设置一个全局布尔值,然后在打开一个新的对话框之前检查该值? – 2011-05-25 17:14:48