2016-04-28 8 views
0

Ich weiß, dass es viele Fragen zu diesem jedoch keine für mich gearbeitet hat.Klasse hinzufügen über 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>'; } 

In dem obigen Code möchte ich active Klasse auf die Links hinzuzufügen, die angeklickt wurden.

JQuery-Code:

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

Ich habe eine Funktion Onclick onclick="moveCategory(this.value);" jedoch das heißt aufgerufen, die Werte in der Textbox zu passieren; hoffe, dass das nicht mit der jquery-Funktion in Konflikt steht.

Jede Hilfe wird sehr geschätzt.

Danke, Utpal

+0

Wenn ich Frage verstand dann aus jeder li Klasse und fügen Sie in einer geklickt entfernen Sie richtig ändern wie '$ ('. nav li'). removeClass ('active'); $ (this) .addClass ('active'); 'kann dabei helfen ... – Dhara

+0

' onclick = "moveCategory (this.value);" 'wird den Wert des Attributs" value "nicht übergeben. Sie müssten 'this.getAttribute (" value ")' oder ähnliches verwenden –

+0

Hey Debin danke für die Antwort, aber das funktioniert nicht ganz. –

Antwort

0

bevorzugt die li-ID im Ereignishandler mit aktiver Klasse

$(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

Danke, aber das funktioniert nicht; auch keine Fehler in der Konsole. –

+0

Sorry, man. Behoben jetzt, gerade getestet –