在dom修改上重新实例化jQuery ui手风琴

时间:2014-05-23 02:34:41

标签: javascript jquery ajax jquery-ui-accordion

我在我的结账页面上有一个jQuery UI手风琴,当你第一次访问该页面时它可以正常工作,但我有一个登录链接,它使用ajax将页面的一部分切换到登录框在那个页面上,我有一个链接,ajax回到原始页面,一旦回到原始页面,手风琴就会停止运作。

  1. 点击“购买许可证”
  2. 点击任意添加到购物车按钮
  3. 点击结账
  4. 在结帐页面上,你会看到手风琴“创建一个帐户(可选)”工作正常,然后点击“已经有一个RockItPro.com帐户?登录”,然后点击“需要创建一个帐户?注册或结账为客人。“您会注意到手风琴在原始页面上无法正常运行。

    jQuery ui手风琴代码:

    jQuery(document).ready(function($) {
    $( ".accordion2" ).accordion({
    animate: 500,
    collapsible: true,
    active: false,
    heightStyle: 'content' });
    });
    

    手风琴的代码:

    <div class="accordion2">
        <h3 class="faqaccordion">Create An Account (optional)</h3>
        <div>
        <fieldset id="edd_register_account_fields">
                <span><legend><?php _e( 'Create An Account (optional)', 'edd' ); if( !edd_no_guest_checkout() ) ?></legend></span>
                <br/><span class="createaccount-description"><?php _e( 'Create an optional account to re-download purchases, view past orders, and download beats for non-profit use.', 'edd' ); ?></span>
                <?php echo do_shortcode('[userpro_social_connect size="medium" width="295px" facebook_title="Sign Up with Facebook" twitter_title="Sign Up with Twitter" google_title="Sign Up with Google+"]'); ?>
                <span class="login-or"><h3><span>OR</span></h3></span>
                <?php do_action('edd_register_account_fields_before'); ?>
                <p id="edd-user-login-wrap">
                    <label for="edd_user_login">
                        <?php _e( 'Username', 'edd' ); ?>
                        <?php if( edd_no_guest_checkout() ) { ?>
                        <span class="edd-required-indicator">*</span>
                        <?php } ?>
                    </label>
                    <input name="edd_user_login" id="edd_user_login" class="<?php if(edd_no_guest_checkout()) { echo 'required '; } ?>edd-input" type="text" placeholder="<?php _e( 'Username', 'edd' ); ?>" title="<?php _e( 'Username', 'edd' ); ?>"/>
                </p>
                <p id="edd-user-pass-wrap">
                    <label for="password">
                        <?php _e( 'Password', 'edd' ); ?>
                        <?php if( edd_no_guest_checkout() ) { ?>
                        <span class="edd-required-indicator">*</span>
                        <?php } ?>
                    </label>
                    <input name="edd_user_pass" id="edd_user_pass" class="<?php if(edd_no_guest_checkout()) { echo 'required '; } ?>edd-input" placeholder="<?php _e( 'Password', 'edd' ); ?>" type="password"/>
                </p>
                <p id="edd-user-pass-confirm-wrap" class="edd_register_password">
                    <label for="password_again">
                        <?php _e( 'Password Again', 'edd' ); ?>
                        <?php if( edd_no_guest_checkout() ) { ?>
                        <span class="edd-required-indicator">*</span>
                        <?php } ?>
                    </label>
                    <input name="edd_user_pass_confirm" id="edd_user_pass_confirm" class="<?php if(edd_no_guest_checkout()) { echo 'required '; } ?>edd-input" placeholder="<?php _e( 'Confirm password', 'edd' ); ?>" type="password"/>
                </p>
                <?php do_action( 'edd_register_account_fields_after' ); ?>
            </fieldset>
        </div>
    </div>
    

1 个答案:

答案 0 :(得分:0)

你应该这样做     $('class_contaier')。on('click','。accordion2',function(){       $(this).accordion({....});      }     );

编辑------ 它可能是$('。accordion2')而不是$(this)。