Php Javascript Fancybox 2关闭按钮/链接事件不工作
我正在使用Fancybox 2创建一个条款和条件弹出窗口,显示当用户登录到我们的wordpress站点时,从div标签检索该内容,并使用php从wordpress页面查找正确的内容。他们需要点击接受按钮继续并关闭弹出窗口,该链接在div标签中生成。使用一个单独的php文件,他们的用户id被添加到一个表中,显示他们已经接受了ts和cs。除了“接受”按钮外,其他一切都正常。当我单击“接受”链接时,窗口不会完全关闭,它会停留在屏幕上,但当我的表使用用户id更新时,会触发onclose事件。当我单击内容(包括链接)上的任意位置时,我可以看到窗口快速地进出。所以我猜fancybox的顶部有某种不可见的覆盖层阻止链接被执行 这是我的密码Php Javascript Fancybox 2关闭按钮/链接事件不工作,php,javascript,wordpress,fancybox,Php,Javascript,Wordpress,Fancybox,我正在使用Fancybox 2创建一个条款和条件弹出窗口,显示当用户登录到我们的wordpress站点时,从div标签检索该内容,并使用php从wordpress页面查找正确的内容。他们需要点击接受按钮继续并关闭弹出窗口,该链接在div标签中生成。使用一个单独的php文件,他们的用户id被添加到一个表中,显示他们已经接受了ts和cs。除了“接受”按钮外,其他一切都正常。当我单击“接受”链接时,窗口不会完全关闭,它会停留在屏幕上,但当我的表使用用户id更新时,会触发onclose事件。当我单击内容
<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>";
?>
找到的编辑解决方案:
好的,我设法解决了这个问题。您必须在链接中创建引用,并在
jQuery(文档).ready(函数()声明
因此,所发生的是accept链接/按钮中的javascript没有正确调用fancybox close
因此,首先在accept链接/按钮中创建引用
echo '<a href="#" id="closeFancy">Accept</a> ';
echo';
然后在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;
//});
});
}
函数callTNC(){
jQuery(文档).ready(函数(){
jQuery(“#closeFancy”)。单击(函数(){
jQuery.fancybox.close();
返回false;
});
jQuery(“测试”).fancybox({
“closeBtn”:false,
“closeClick”:false,
“模态”:正确,
“最大高度”:600,
“最大宽度”:750,
助手:{
覆盖:{closeClick:false}//防止在fancybox外部单击时关闭
},
后关闭:功能(){
//将用户添加到tnc accepted表中
$.get(”http://mysite.com/tncaccept.php");
}
}).trigger('click');
//$(“#接受关闭”)。单击(函数(){
//$.fancybox.close();
//返回false;
//});
});
}
<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;
//});
});
}