Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.03.2019, 20:04
Новичок на форуме
Отправить личное сообщение для alina_dirksova@mail.ru Посмотреть профиль Найти все сообщения от alina_dirksova@mail.ru
 
Регистрация: 15.03.2019
Сообщений: 1

Помогите изменить меню
Здравствуйте. Есть сайт на WP и мне очень нужна ваша помощь(
Вот боковое меню http://cryptoland.by/shop/. Как можно сделать так, чтобы при нажатии например на Оборудование для майнинга подкатеории открывались/ закрывались? На данный момент оно просто переходит по ссылке.

$( '.yit_toggle_menu ul.menu.open_first > li:first-child, .yit_toggle_menu ul.menu.open_all > li' ).addClass( 'opened' );
$( '.yit_toggle_menu ul.menu.open_active li.current-menu-ancestor, .yit_toggle_menu ul.menu.open_active li.current-menu-parent' ).addClass( 'opened' );
$( '.yit_toggle_menu ul li.dropdown > a' ).on('click'function( e ) {
e.preventDefault();
e.stopPropagation(); // Prevent issues on mobile.
var dropdown = $( this ).next( 'ul' );
var dropdown_parent = dropdown.parent( '.dropdown' );

dropdown.width( dropdown_parent.width() );
dropdown_parent.width( dropdown_parent.parent().width() );

if( dropdown_parent.hasClass( 'opened' ) )
{ dropdown_parent.removeClass( 'opened' ); }
else
{ dropdown_parent.addClass( 'opened' ); }

dropdown.slideToggle();
});


});




if( !class_exists( 'yit_toggle_menu' ) ) :
class yit_toggle_menu extends WP_Widget {
public function __construct() {
$widget_ops = array(
'classname' => 'yit_toggle_menu',
'description' => __( 'Print a custom menu in a sidebar with a fancy toggle jQuery effect. Create an apposite menu for this widget in Appearance -> Menus.', 'yit' )
);

$control_ops = array( 'id_base' => 'yit_toggle_menu' );

WP_Widget::__construct( 'yit_toggle_menu', __( 'Toggle Menu', 'yit' ), $widget_ops, $control_ops );
}

public function form( $instance ) {
$defaults = array(
'title' => '',
'menu' => '',
'open_dropdowns' => 'first',
);

$instance = wp_parse_args( ( array ) $instance, $defaults ); ?>

<p>
<label>
<strong><?php _e( 'Title', 'yit' ) ?></strong>
<input class="widefat" type="text" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" value="<?php echo $instance['title']; ?>" />
</label>
</p>

<p>
<label for="<?php echo $this->get_field_id( 'menu' ); ?>"><?php _e( 'Menu', 'yit' ) ?>:
<select id="<?php echo $this->get_field_id( 'menu' ); ?>" name="<?php echo $this->get_field_name( 'menu' ); ?>">
<option value=""></option>
<?php foreach( yit_get_registered_nav_menus() as $menu ): ?>
<option value="<?php echo $menu ?>" <?php selected( $menu, $instance['menu'] ) ?>><?php echo $menu ?></option>
<?php endforeach ?>
</select>
</label>
</p>

<p>
<input type="radio" name="<?php echo $this->get_field_name( 'open_dropdowns' ); ?>" value="first" <?php checked( 'first' , $instance['open_dropdowns'] ) ?> />
<label><?php _e( 'Open the first dropdown', 'yit' ) ?></label><br />

<input type="radio" name="<?php echo $this->get_field_name( 'open_dropdowns' ); ?>" value="all" <?php checked( 'all', $instance['open_dropdowns'] ) ?> />
<label><?php _e( 'Open all dropdowns', 'yit' ) ?></label><br />

<input type="radio" name="<?php echo $this->get_field_name( 'open_dropdowns' ); ?>" value="active" <?php checked( 'active', $instance['open_dropdowns'] ) ?> />
<label><?php _e( 'Open active dropdown', 'yit' ) ?></label><br />

<input type="radio" name="<?php echo $this->get_field_name( 'open_dropdowns' ); ?>" value="none" <?php checked( 'none', $instance['open_dropdowns'] ) ?> />
<label><?php _e( 'Close all dropdowns', 'yit' ) ?></label><br />
</p>

<?php
}

public function widget( $args, $instance ) {
extract( $args );

$title = apply_filters('widget_title', $instance['title'] );

echo $before_widget;

if ( $title ) echo $before_title . $title . $after_title;

$args = array(
'menu' => $instance['menu'],
'menu_class' => 'menu',
'depth' => apply_filters( 'yit_toggle_menu_depth', 3 ),
);

if( $instance['open_dropdowns'] )
{ $args['menu_class'] .= ' open_' . $instance['open_dropdowns']; }

wp_nav_menu( $args );

echo $after_widget;
}

public function update( $new_instance, $old_instance ) {
$instance = $old_instance;

$instance['title'] = esc_html( $new_instance['title'] );
$instance['menu'] = $new_instance['menu'];
$instance['open_dropdowns'] = $new_instance['open_dropdowns'];

return $instance;
}
}
endif;
Ответить с цитированием
  #2 (permalink)  
Старый 16.03.2019, 14:10
Интересующийся
Отправить личное сообщение для Russo Посмотреть профиль Найти все сообщения от Russo
 
Регистрация: 26.02.2019
Сообщений: 10

Сообщение от alina_dirksova@mail.ru Посмотреть сообщение
Здравствуйте. Есть сайт на WP и мне очень нужна ваша помощь(
Вот боковое меню http://cryptoland.by/shop/. Как можно сделать так, чтобы при нажатии например на Оборудование для майнинга подкатеории открывались/ закрывались? На данный момент оно просто переходит по ссылке.

$( '.yit_toggle_menu ul li.dropdown > a' ).on('click'function( e ) {
e.preventDefault();
e.stopPropagation(); // Prevent issues on mobile.
var dropdown = $( this ).next( 'ul' );
var dropdown_parent = dropdown.parent( '.dropdown' );

dropdown.width( dropdown_parent.width() );
dropdown_parent.width( dropdown_parent.parent().width() );

if( dropdown_parent.hasClass( 'opened' ) )
{ dropdown_parent.removeClass( 'opened' ); }
else
{ dropdown_parent.addClass( 'opened' ); }

dropdown.slideToggle();
});


});

У Вас в функции on('click', function(e) {}) пропущена запятая между аргументами.

Последний раз редактировалось Russo, 16.03.2019 в 14:18.
Ответить с цитированием
  #3 (permalink)  
Старый 16.03.2019, 17:39
Аватар для Malleys
Профессор
Отправить личное сообщение для Malleys Посмотреть профиль Найти все сообщения от Malleys
 
Регистрация: 20.12.2009
Сообщений: 1,714

Сообщение от alina_dirksova@mail.ru
Как можно сделать так, чтобы при нажатии, например, на «Оборудование для „майнинга“» подраздел открывался/закрывался? На данный момент происходит переход по ссылке.
Добавьте в CSS к тем правилам, которые отвечают за ссылки для переключения, следующее — pointer-events: none;

UPD Вы уж определитесь, на каком языке ваш сайт — на английском или русском? Сейчас у вас жуткая смесь английского и русского! Говоря о заголовке подраздела, почему бы не написать по-русский «Оборудование для добычи»?

Последний раз редактировалось Malleys, 16.03.2019 в 18:01.
Ответить с цитированием
Ответ


Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите доработать js скрипт меню mirabo Элементы интерфейса 0 06.08.2015 13:13
помогите разобраться с мега меню tyshka jQuery 4 24.10.2014 21:30
Помогите с меню sc2r2bey Элементы интерфейса 7 31.03.2010 10:39
Помогите настроить скрипт раскрывающегося меню melomanfm Работа 6 10.08.2009 01:21