2011-04-21 64 views
0

我在頁面打開時使用模式對話框,我想爲每個用戶顯示一次。 下面是代碼,但它不工作每個用戶顯示一次jquery對話框

<script type="text/javascript"> 
// <![CDATA[ 
$(document).ready(function(){ 
    $("#dialog").dialog({ 
     modal: true 
    }); 
    $(function() { 
     if ($.cookie('shownDialog') != 'true') { 
      $('#dialog').dialog(); 
     } 
     $.cookie('shownDialog', 'true', {expires: 7}); 
    }); 
    $("#close").click(function(event) { 
     event.preventDefault(); 
     $(this).closest(":ui-dialog").dialog("close"); 
    }); 
}); 
// ]]> 
</script> 

有人可以幫我解決代碼?

+1

你應該更具體的不是「它不工作」。它怎麼不工作?你期望什麼?你究竟看到了什麼?錯誤?堆棧痕跡?更好的問題==更好,更快的答案(通常)。 – 2011-04-21 21:32:24

+1

發佈[SSCCE](http://sscce.org/)通常也是一個好主意;對於JS問題,請考慮使用[jsfiddle](http://jsfiddle.net)發佈工作示例。 – 2011-04-21 21:39:34

回答

0

我猜你總是看到對話框而不是每個用戶一次。

$(document).ready(function(){ 
    $("#dialog").dialog({ 
       modal: true 
}); 

這部分將會在到達您的顯示檢查之前立即顯示對話框。

你應該擺脫它並移動模式選項進入if塊來代替:

<script type="text/javascript"> 
// <![CDATA[ 
$(document).ready(function(){ 
    $(function() { 
      if ($.cookie('shownDialog') != 'true') { 
       $("#dialog").dialog({ 
        modal: true 
       }); 
      } 
      $.cookie('shownDialog', 'true', {expires: 7}); 
    }); 
    $("#close").click(function(event) { 
     event.preventDefault(); 
     $(this).closest(":ui-dialog").dialog("close"); 
    }); 
}); 
// ]]> 
</script> 
+0

我在Jsbin中試過了你的代碼,但是我無法顯示模式對話框。這是源代碼[鏈接] http://jsbin.com/axeru4/edit – Samm 2011-04-22 07:05:34

+0

你鏈接的例子沒有cookie包含的插件,所以它不會運行 - 看到JavaScript控制檯/ Firebug,你會看到錯誤。 – 2011-04-22 13:33:20