2012-09-21 91 views
1

使用Fancybox 2創建條款和條件彈出窗口,顯示用戶何時登錄到我們的WordPress網站,此內容從div標記中檢索並使用php查找正確的內容從wordpress頁面。他們需要點擊接受按鈕來移動並關閉彈出窗口,該鏈接在div標籤內生成。使用一個單獨的php文件,他們的用戶標識被添加到一個表格中,顯示他們已經接受了ts和cs。除了接受按鈕,一切都可以工作當我單擊「接受」鏈接時,窗口不會完全關閉,它會保留在屏幕上,但onclose事件會在我的表更新爲用戶標識時觸發。當我點擊包括鏈接在內的任何地方時,我都可以快速地看到窗口快速閃爍。所以我猜測在fancybox的頂部有一些不可見的疊加層阻止鏈接被執行?Javascript Fancybox 2關閉按鈕/鏈接事件不起作用

這裏是我的代碼

<a class="fancybox" href="test" style="display:none;">ddd</a> 
     <div id="test" style="display:none;height:600;width:750px;"> 
         <?php 
     global $blog_id,$wpdb; 
     // query the DB to retrieve the post 'termsofservice' from the localized sites posts table 
     $tnc_notification = $wpdb->get_var($wpdb->prepare("select post_content from wp_posts where post_title='Terms & Conditions' and post_status='publish';")); 
      echo "<p>TERMS and CONDITIONS have changed, please read the new terms and conditions. By closing this window you automatically accept them</p>"; 

        echo '<a href="javascript:jQuery.fancybox.close();">Accept </a> '; 

        echo "<p>".$tnc_notification."</p>"; 
     ?> 

<script type="text/javascript" language="javascript"> 
function callTNC(){ 
      jQuery(document).ready(function() { 
        jQuery("#test").fancybox({ 
               'closeBtn': false, 
               'closeClick': false, 
               'modal': true, 
               'maxHeight': 600, 
               'maxWidth': 750, 
               afterClose : function(){ 
                //add the user into the tnc accepted table 
                $.get("http://mysite.com/tncaccept.php"); 
               } 
        }).trigger('click'); 

      }); 
} 

任何幫助,將不勝感激,謝謝!

回答

0

找到編輯解決方案: 好吧,我設法解決這個問題。你必須在鏈接中創建一個引用,並在 jQuery(document).ready(function()聲明 中有實際的關閉函數。因此接受鏈接/按鈕中的javascript沒有正確調用fancybox關閉。

所以首先創建在接受鏈接參考/按鈕

echo '<a href="#" id="closeFancy">Accept</a> '; 

,然後申報的fancybox /初始化中創建功能:

<script type="text/javascript" language="javascript"> 
function callTNC(){ 
      jQuery(document).ready(function() { 
              jQuery("#closeFancy").click(function(){ 
               jQuery.fancybox.close(); 
               return false; 
              }); 
        jQuery("#test").fancybox({ 
               'closeBtn': false, 
               'closeClick': false, 
               'modal': true, 
               'maxHeight': 600, 
               'maxWidth': 750, 
               helpers : { 
                overlay : {closeClick: false} // prevents closing when clicking OUTSIDE fancybox 
               }, 

               afterClose : function(){ 
                //add the user into the tnc accepted table 
                $.get("http://mysite.com/tncaccept.php"); 
               } 
        }).trigger('click'); 
              //$("#acceptClose").click(function(){ 
              // $.fancybox.close(); 
              // return false; 
              //}); 
      }); 
}