Используйте атрибут поиска данных, чтобы добавить класс

Я пытаюсь создать меню с уникальными атрибутами данных, прикрепленными к каждому элементу навигации. При нажатии я хочу, чтобы этот элемент навигации нашел раздел с тем же атрибутом и добавил к нему класс. Это код, который я использую до сих пор (это часть гораздо большего сценария).

var $el = $( '#bl-main' ),
$sections = $el.children( 'section' ),
$navItems = $( 'nav > a' );   


$navItems.on( 'click', function( event ) {

$el.addClass( 'bl-expand-item' );
$navItems.find("[data-section='" + current + "']");
$sections.find("[data-section='" + $navItems + "']").addClass( 'expand expand-top' );
} );

Это сценарий, на котором он основан. http://tympanus.net/Development/FullscreenLayoutPageTransitions/

Идея состоит в том, чтобы добавить отдельную плавающую навигацию для ссылки на различные разделы (вместо прямого щелчка, чтобы развернуть, который в настоящее время реализован). Текущий сценарий, который я добавил, только обновляет страницу при нажатии. Я не мог заставить его работать на скрипке, поэтому оригинальный сценарий наверняка сработает. Добавленный раздел о моих локальных файлах.

2 ответа

На первой линии, когда вы пытаетесь вызвать <section> элемент, вы пропустите сокращение jQuery перед скобками. Это должно исправить ваш сценарий.

Так должно выглядеть так:

var $section = $('section');

Это должно иметь все для продолжения!

Во-первых, вам не хватает вашего $ в первом назначении переменной. var $section = $ ('section')

После этого трудно понять, что вы пытаетесь сделать, не видя разметки, но я попробую.

Похоже, что вы пытаетесь отфильтровать объект $section по атрибуту data-section элемента nav > a. Этот код должен сделать именно это:

var $section = $( 'section' ), $navItems = $( 'nav > a' );   

$navItems.on( 'click', function( event ) {
    var $navSection = $section.filter("[data-section='" + $( this ).data( 'section' ) + "']");
    $navSection.addClass( 'expand expand-top' );
    return false;
} );

Обратите внимание, что мы фильтруем все разделы по значению атрибута data-section кликающего клика.

Если это не поможет, добавьте вашу разметку, чтобы мы могли видеть вашу структуру.

Другие вопросы по тегам