我使用Fancybox 2创建条款和条件弹出窗口,显示当用户登录我们的wordpress网站时,此内容从div标签中检索并使用php从wordpress页面中查找正确的内容。他们需要单击“接受”按钮继续并关闭弹出窗口,此链接在div标记内生成。使用单独的php文件,他们的用户ID被添加到一个表中,表明他们已经接受了ts和cs。一切都有效,除了接受按钮。当我单击“接受”链接时,窗口未完全关闭,它将保持在屏幕上,但是当我的表使用用户ID更新时,会触发onclose事件。当我点击内容的任何地方(包括链接)时,我可以看到窗口快速闪烁。所以我猜测fancybox上面有某种不可见的覆盖,阻止链接被执行?
这是我的代码
<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 :(得分: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;
//});
});
}