Я работаю над плагином 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/
Вы можете попробовать применить изменения только к родным братьям выбранного элемента. Это то, что вы пытаетесь сделать? http://jsfiddle.net/977hv/8/
$(this).siblings('.ms-section-select li').removeClass('ms-checked');
Чтобы применить его к первому ребенку
$('.ms-section-select li:first-child').addClass('ms-checked');
function selectBox () {
$('.ms-section-select li').on('click', function(){
$(this).siblings().removeClass('ms-checked');
$(this).addClass('ms-checked');
})
};
selectBox();
это должно выполнить трюк: http://jsfiddle.net/977hv/6/