簡體   English   中英

打開/關閉手風琴

[英]Open/close accordion

我正在嘗試修復此手風琴的功能,以便可以單擊打開和關閉。 我正在使用一個內置了手風琴模塊的wordpress主題。有人告訴我添加slideToggle(),但是我不確定它屬於哪里。 這里是可以看到手風琴的站點的鏈接: http : //www.desertpeak.biz/customer-service/

我相信應該在這里添加它嗎?

<?php

add_action('dslc_hook_register_modules',
     create_function('', 'return dslc_register_module( "Slowave_Accordion" );')
);

class Slowave_Accordion extends DSLC_Module {

    var $module_id = 'Slowave_Accordion';
    var $module_title = 'Slowave Accordion';
    var $module_icon = 'reorder';
    var $module_category = 'Slowave - Tabs';

    function output( $options ) {

        global $dslc_active;

        if ( $dslc_active && is_user_logged_in() && current_user_can( DS_LIVE_COMPOSER_CAPABILITY ) )
            $dslc_is_admin = true;
        else
            $dslc_is_admin = false;     

        $this->module_start( $options );

        /* Module output stars here */ 

            $accordion_nav = explode( '(dslc_sep)', trim( $options['accordion_nav'] ) );

            if ( empty( $options['accordion_content'] ) )
                $accordion_contents = false;
            else
                $accordion_contents = explode( '(dslc_sep)', trim( $options['accordion_content'] ) );

            $count = 0;

        ?>  <div class="divide10"></div>
                <div class="dslc-accordion">

                    <?php if ( is_array( $accordion_contents ) && count( $accordion_contents ) > 0 ) : ?>

                        <?php foreach ( $accordion_contents as $accordion_content ) : ?>

                            <div class="dslc-accordion-item">

                                <div class="dslc-accordion-header dslc-accordion-hook">
                                    <span class="dslc-accordion-title" <?php if ( $dslc_is_admin ) echo 'contenteditable'; ?>><?php echo $accordion_nav[$count]; ?></span>
                                    <?php if ( $dslc_is_admin ) : ?>
                                        <span class="dslca-delete-accordion-hook"><span class="dslca-icon dslc-icon-remove"></span></span>
                                    <?php endif; ?>
                                </div>

                                <div class="dslc-accordion-content" <?php if ( $dslc_is_admin ) echo 'contenteditable'; ?>>
                                    <?php echo stripslashes( $accordion_content ); ?>
                                </div><!-- .dslc-accordion-content -->

                            </div><!-- .dslc-accordion-item -->

                        <?php $count++; endforeach; ?>

                    <?php else : ?>

                        <div class="dslc-accordion-item">

                            <div class="dslc-accordion-header dslc-accordion-hook">
                                <span class="dslc-accordion-title" <?php if ( $dslc_is_admin ) echo 'contenteditable'; ?>>CLICK TO EDIT</span>
                                <?php if ( $dslc_is_admin ) : ?>
                                    <span class="dslca-delete-accordion-hook"><span class="dslca-icon dslc-icon-remove"></span></span>
                                <?php endif; ?>
                            </div>

                            <div class="dslc-accordion-content" <?php if ( $dslc_is_admin ) echo 'contenteditable'; ?>>
                                Placeholder content, click to edit. Lorem ipsum dolor sit amet, consectetur
                                tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam,
                                quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo
                                consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse
                                cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non
                                proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
                            </div><!-- .dslc-accordion-content -->

                        </div><!-- .dslc-accordion-item -->

                    <?php endif; ?>

                    <?php if ( $dslc_is_admin ) : ?>
                        <div class="dslca-add-accordion">
                            <span class="dslca-add-accordion-hook"><span class="dslca-icon dslc-icon-plus"></span></span>
                        </div>
                    <?php endif; ?>

                </div><!-- .dslc-accordion -->

        <?php /* Module output ends here */

        $this->module_end( $options );

    }

}

在此文件中, http://www.desertpeak.biz/wp-content/plugins/ds-live-composer/js/front.js?ver=3.9.2

在第792行中,將其替換為以下內容(或添加一個javascript文件並確保其在末尾加載)

jQuery(document).off( 'click', '.dslc-accordion-hook');
jQuery(document).on( 'click', '.dslc-accordion-hook', function(){

    var dslcActive = jQuery(this).closest('.dslc-accordion-item'),
    dslcInactive = dslcActive.siblings('.dslc-accordion-item');

    if (dslcActive.hasClass( 'dslc-active' ) ){
        dslcActive.removeClass('dslc-active').addClass('dslc-inactive');
        dslcInactive.removeClass('dslc-active').addClass('dslc-inactive');
        jQuery('.dslc-accordion-content', dslcActive).slideUp(300);
        return false;
    }
    dslcActive.removeClass('dslc-inactive').addClass('dslc-active');
    dslcInactive.removeClass('dslc-active').addClass('dslc-inactive');

    jQuery('.dslc-accordion-content', dslcActive).slideDown(300);
    jQuery('.dslc-accordion-content', dslcInactive).slideUp(300);

});

這應該工作:

$(document).on( 'click', '.dslc-accordion-hook', function(){

        var dslcActive = $(this).closest('.dslc-accordion-item'),
        dslcInactive = dslcActive.siblings('.dslc-accordion-item');


      //add this line:
       if(dslcActive.hasClass('dslc-active')) 
              {   
              dslcActive.find('.dslc-accordion-content').hide(); 
              dslcActive.removeClass('dslc-active').addClass('dslc-inactive');
              $('.dslc-accordion-content', dslcActive).slideUp(300);
              }
        else  {
              dslcActive.find('.dslc-accordion-content').show(); 
              }

        //above this line:
        dslcActive.removeClass('dslc-inactive').addClass('dslc-active');
        dslcInactive.removeClass('dslc-active').addClass('dslc-inactive');

        $('.dslc-accordion-content', dslcActive).slideDown(300);
        $('.dslc-accordion-content', dslcInactive).slideUp(300);

    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM