2011-05-25 117 views
4

我在一个页面上有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”,此功能都能正常工作,但是当我关闭第一个并打开另一个时,您可以一次打开任意多个。

任何帮助将是惊人的。谢谢!

+0

也许你可以设置一个全局布尔值,然后在打开一个新的对话框之前检查该值? – 2011-05-25 17:14:48

回答

7

为什么不把modal: true添加到对话框调用中,这样一次只能查看一个。

+0

好的呼叫尼尔,这正是我需要的。谢谢! – nickff 2011-05-25 17:23:41

+0

@nickff,记得选择一个“接受答案”,当你可以 – Neal 2011-05-25 17:25:20

+0

真棒,会做。感谢您的支持! – nickff 2011-05-25 18:01:07