Как применить плагин jQuery к нескольким div на одной странице?

0

Я работаю над плагином jQuery, и мне нужно, чтобы он работал с несколькими div на одной странице. В принципе, у меня есть два меню, и когда пользователь нажимает на один пункт меню, меняется цвет фона. Прямо сейчас эффект применяется к обеим меню, а не по отдельности. Например, если я нажму на элемент одного из меню, который изменит фон, но если я нажму на элемент два из меню два, фон пункта меню один из них удаляется, когда меняется фон меню 2 меню 2.

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

(function ($) {
    $.fn.selectBox = function () {
        function get() {
            $('.ms-section-select li').first().addClass('ms-checked');
        }

        function get() {
            $('.ms-section-select li').click(function () {
                $('.ms-section-select li').removeClass('ms-checked');
                $(this).addClass('ms-checked');
            });
        }
        return this.each(get);
    };
})(jQuery);

$('.one').selectBox();
$('.two').selectBox();

Вот пример jsfiddle со всем кодом http://jsfiddle.net/977hv/

2 ответа

5
Лучший ответ

Вы можете попробовать применить изменения только к родным братьям выбранного элемента. Это то, что вы пытаетесь сделать? http://jsfiddle.net/977hv/8/

$(this).siblings('.ms-section-select li').removeClass('ms-checked');

Чтобы применить его к первому ребенку

    $('.ms-section-select li:first-child').addClass('ms-checked');
  • 0
    Это именно то, что мне нужно, спасибо! Этот метод на самом деле только помогает этой функции, хотя. Первая функция все еще не применяется к каждому отдельному меню.
  • 0
    Что вы пытаетесь сделать с первой функцией? Вы пытаетесь выбрать первые элементы для обоих списков по умолчанию?
Показать ещё 4 комментария
1
function selectBox () { 

    $('.ms-section-select li').on('click', function(){
        $(this).siblings().removeClass('ms-checked');
        $(this).addClass('ms-checked');

    })
};

selectBox();

это должно выполнить трюк: http://jsfiddle.net/977hv/6/

Ещё вопросы

Сообщество Overcoder
Наверх
Меню