1

ユーザーがワードプレスサイトにログインしたときに表示されるFancybox2を使用して利用規約のポップアップを作成しています。このコンテンツは、divタグから取得され、phpを使用してワードプレスページから正しいコンテンツを検索します。ポップアップに移動して閉じるには、承認ボタンをクリックする必要があります。このリンクは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>";
        ?>

<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');

            });
}

助けていただければ幸いです、ありがとう!

4

1 に答える 1

0

見つかったソリューションの編集:OK、なんとかこれを修正できました。リンクに参照を作成し、jQuery(document).ready(function()宣言内に実際のclose関数を含める必要があります。したがって、accept link/buttonのjavascriptがfancyboxcloseを適切に呼び出していませんでした。

したがって、最初に承認リンク/ボタンで参照を作成します

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;
                                            //});
            });
}

于 2012-09-25T16:02:59.507 に答える