я хочу добавить и удалить класс в div, размещенном внутри li, и когда я нажму на другой li ineed, чтобы удалить класс righthapeactive из активированного div
<ul id="servicesleft">
<li class="left1">
<span>Lorem ipsum</span>
<div id="rightshape" class="t"></div>
</li>
<li class="left1">
<span>Lorem ipsum</span>
<div id="rightshape" class="t"></div>
</li>
<li class="left1">
<span>Lorem ipsum</span>
<div id="rightshape" class="t"></div>
</li>
</ul>
jQuery(document).ready(function() {
$('#servicesleft').delegate('li', 'click', function() {
$(this).find('#rightshape').addClass('rightshapeactive').siblings().removeClass('rightshapeactive');
});
});
Это должно сработать. После .find('#rightshape')
выбор относится к div
, а не к li
. .end
возвращает вас к предыдущему выбору.
jQuery(document).ready(function() {
$('#servicesleft').delegate('li', 'click', function() {
$(this).find('#rightshape')
.addClass('rightshapeactive')
.end()
.siblings()
.find('#rightshape')
.removeClass('rightshapeactive');
});
});
Это может быть еще лучше:
jQuery(document).ready(function() {
$('#servicesleft').delegate('li', 'click', function() {
$('.rightshapeactive').removeClass('rightshapeactive');
$('#rightshape', this).addClass('rightshapeactive');
});
});
Вместо этого используйте класс "t": http://jsfiddle.net/m27ra/
jQuery(document).ready(function() {
$('#servicesleft').delegate('li', 'click', function() {
$(this).parent().find('.t').removeClass('rightshapeactive');
$(this).find('.t').addClass('rightshapeactive');
});
});