2016-04-28 4 views
0

Я знаю, что есть много вопросов по этому поводу, но никто не работал для меня.Добавить класс через Javascript (PHP Loop)

for($u = 0; $u < count($pui); $u++){ 
    echo '<li id="catso_'.$u.'" class="btn" value="'.trim($pui[$u]['category_id']).'" onclick="moveCategory(this.value);">'.trim($pui[$u]['category_name']).'</li>'; } 

В приведенном выше коде я хочу добавить active класс по ссылкам, которые были нажимали.

Jquery код:

$('.nav').on('click', 'li', function(){ 
    $('.nav li').addClass('active'); 
    $(this).removeClass('active'); 
}); 

У меня есть функция, которая вызывается на OnClick onclick="moveCategory(this.value);" Однако то, чтобы передать значения в текстовом поле; надеюсь, что это не противоречит функции jquery.

Любая помощь будет высоко оценена.

Спасибо, Utpal

+0

Если я понял вопрос правильно, то вы должны удалить класс из всех литий и добавить в щелкнул один например '$ ('. nav li'). removeClass ('active'); $ (this) .addClass ('active'); 'может помочь этому ... – Dhara

+0

' onclick = "moveCategory (this.value);" 'не будет передавать значение атрибута' value'. Вам нужно будет использовать 'this.getAttribute (" value ")' или аналогичный –

+0

Hey Debin спасибо за ответ, однако это не совсем работает. –

ответ

0

предпочитают использовать литиево идентификатор в обработчик событий, чтобы изменить активный класс

$(document).on("click", "li[id*='catso_']", function(){ 
    //get the loop value to speficy the pressed li 
     var id= this.id.replace('catso_',''); 
    $('#catso_'+id).addClass('active'); 
     //if you want to remove all other active 
     $('.btn:not(#catso_'+id+')').removeClass('active'); //!fixed 
    }); 
+0

спасибо, что это не работает, никаких ошибок в консоли тоже .. –

+0

извините, человек исправлен сейчас. –

Смежные вопросы