У меня есть некоторые проблемы со следующим
если я добавлю дополнительный столбец в цикл, класс ccs не будет удален через скрипт jquery. Если я удаляю это работает ..
<?php foreach ($option['option_value'] as $option_value) { ?>
<td>
<a class="option-detail"> <img src="image"></a>
</td>
<?php } ?>
Что я делаю неправильно ?
Часть кода JQuery
$(document).ready(function(){
$("a.option, a.option-detail").click(function(event){
$this = $(this);
$this.parent().find('a.option, a.option-detail').removeClass('option-active');
$this.addClass('option-active');
Это потому что parent
недостаточно для того, чтобы вы оказались на верхнем уровне, на котором существуют узлы, которые вам нужно изменить.
И.Е. что вы просто двигаетесь к tr
который содержит td
и не table
?
Без немного большего количества кода (больше поколения HTML) трудно быть уверенным.
Мое лучшее предположение, что вам действительно нужно найти closest
стол вместо parent
,
Например.
$this.closest( 'table' ).find('a.option, a.option-detail').removeClass( 'option-active' );
использование <a class="option-detail"><img src="image"></a>
(Удалить a.
до)
потому что с этим:
<a class="a.option-detail" <img src="image"></a>
Ваше имя класса будет .a.option-detail
и исправить свой HTM с закрытием >
Почему вы берете событие click для «a.option», а затем отправляетесь к родителю и снова находите привязку, прежде чем удалить и добавить класс? Не было бы проще сделать следующее:
$(document).on('click', 'a.option, a.option-detail', function() {
$this = $(this);
$('.option-active').removeClass('option-active');
$this.addClass('option-active');
}