Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
wordpress-shortcode,ob_start中断jQuery_Jquery_Wordpress - Fatal编程技术网

wordpress-shortcode,ob_start中断jQuery

wordpress-shortcode,ob_start中断jQuery,jquery,wordpress,Jquery,Wordpress,我正试图在wordpress中制作一个shortcode插件 <?php function upd_signup_form() { $key = get_query_var( 'upd' ); ob_start(); ?> <a href="#" class="signup-submit">Reserve Your Spot for Free</a> <div id="upd-m

我正试图在wordpress中制作一个
shortcode
插件

<?php

    function upd_signup_form() {
        $key = get_query_var( 'upd' );

        ob_start();
?>
        <a href="#" class="signup-submit">Reserve Your Spot for Free</a>
        <div id="upd-modal" style="display: none;">
            <a href="#" id="upd-modal-close">CLOSE X</a>
            <div id="upd-form">
                <form name="registerform" id="registerform" action="<?php echo site_url().'/wp-login.php?action=register'; ?>" method="post">
                    <p>
                        <label for="user_login">Username<br>
                        <input type="text" name="user_login" id="user_login" class="input" value="" size="20"></label>
                    </p>
                    <p>
                        <label for="user_email">E-mail<br>
                        <input type="text" name="user_email" id="user_email" class="input" value="" size="25"></label>
                    </p>
                        <p>
                        <label for="first_name">First Name<br>
                        <input id="first_name" class="input" type="text" value="" name="first_name">
                        </label>
                    </p>
                    <p>
                        <label for="last_name">Last Name<br>
                        <input id="last_name" class="input" type="text" value="" name="last_name">
                        </label>
                    </p>
                    <p>
                        <label for="password">Password<br>
                        <input id="password" class="input" type="password" value="" name="password">
                        </label>
                    </p>
                    <p>
                        <label for="rpassword">Re-enter Password<br>
                        <input id="rpassword" class="input" type="password" value="" name="rpassword">
                        </label>
                    </p>
                    <p>
                        <label for="upd_terms">
                        <input id="upd_terms" class="checkbox" type="checkbox" value="true" name="upd_terms">
                        I accept these terms and conditions.</label>
                    </p>
                    <p>
                        <label for="upd_register">
                        <input id="upd_register" class="checkbox" type="checkbox" value="true" name="upd_register">
                        I would like to sign-up for the Synek Waitlist.
                        </label>
                    </p>
<?php
        if( $key != '' ) :
            $uargs = array(
                'role' => 'subscriber',
                'meta_key' => 'upd_key',
                'meta_value' => $key
            );

            $ruser = get_users( $uargs );

            if( is_array($ruser) ) :
                $userx = $ruser['0'];
?>
                    <input type="hidden" id="upd_user_id" name="upd_user_id" value="<?php echo $userx->ID; ?>">
                    <input type="hidden" id="upd_user_key" name="upd_user_key" value="<?php echo $key; ?>">
<?php
            endif;

        endif;
?>
                    <br class="clear">
                    <input type="hidden" name="redirect_to" value="">
                    <p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="Register"></p>
                </form>
            </div>
        </div>

    <script type="text/javascript">
        jQuery('.signup-submit').on('click', function(){

            jQuery('#upd-modal').fadeIn('400');

        });

        jQuery('#upd-modal-close').on('click', function(){

            jQuery('#upd-modal').fadeOut('400');

        });
    </script>

 <?php
    $form = ob_get_clean();
    return $form;

    }

    add_shortcode('upd-signup', 'upd_signup_form');



?>


我也有同样的问题。WordPress正在输出的html中添加p和br标记

我能够通过重组HTML来解决这个问题,这样就减少了空格和换行符。问题出人意料地特定于脚本标记。如果html的结构是这样的,它应该不会引起任何问题

<script type="text/javascript">
jQuery('.signup-submit').on('click', function(){
    jQuery('#upd-modal').fadeIn('400');
});
jQuery('#upd-modal-close').on('click', function(){
    jQuery('#upd-modal').fadeOut('400');
});
</script>

这是JS控制台错误吗?如果是,它指的是什么位置?检查页面的源代码(如在View source中,而不是Elements developer选项卡中)是否有错误
事实上,它是JS控制台。我已经一遍又一遍地看了JS代码,里面什么都没有。我甚至重写了几次。这只是一个简单的模式叠加。@Phil:它不是未闭合的,只是偏移。arrant选项卡。我也尝试过按您在页脚中的要求添加脚本。当使用ob时仍然会中断。你能在我的第一个评论中回答其他问题吗?错误引用的位置(文件和行号)是什么?如果查看该文件的源代码(如呈现的HTML源代码),您会看到什么?
<script type="text/javascript">
jQuery('.signup-submit').on('click', function(){
    jQuery('#upd-modal').fadeIn('400');
});
jQuery('#upd-modal-close').on('click', function(){
    jQuery('#upd-modal').fadeOut('400');
});
</script>
$form = ob_get_clean();
return str_replace("\r\n", '', $form);