2013-08-22 2 views
0

он удаляет класс, но он не добавляет класс, я не могу использовать .click() функцию она должна быть onclick=""добавить класс, когда нажмите на ссылку не работает

<li class="selected"><a href="javascript:void(0);" onclick="myfunction(x,y,x)">Click me</a></li> 
<li><a href="javascript:void(0);" onclick="myfunction(x,y,z)">Click me</a></li> 

function myfunction(a,b,c){ 
    $('ul li.selected').removeClass('selected').addClass('none'); 
    $(this).closest('li').addClass('selected'); 
} 
+5

Ваш 'onclick' ничего не полезен, как показано на рисунке. Измените его на 'onclick =" myfunction.call (this) "' –

+0

Почему вы не можете использовать '.click()'? – Dom

+0

У меня есть больше кодов в этой функции, и я использую 'myfunction (x, y, z)' будет ли это работать? @CrazyTrain –

ответ

4

Вы уже используете jQuery, поэтому просто используйте jQuery для обработки всех ваших событий.

Добавить этот код;

$(function(){ 

    // bind click event to your <a> tags 
    $('a').click(function(e){ 
     // prevent the default behaviour of your links 
     e.preventDefault(); 
     // remove the class from all li's 
     $('li').removeClass('selected'); 
     // add selected to the clicked a's parent li 
     $(this).parent('li').addClass('selected'); 
    }); 

}); 

Затем сохранить ваш HTML очистить от JavaScript

<li class="selected"> 
    <a href="#">Click me</a> 
</li> 
<li> 
    <a href="#">Click me</a> 
</li> 

P.S.

Если вы хотите включить PHP, тогда вы можете поместить вещи в себя;

// check out my 1337 php coding skillz! 
<a href="#" data-foobar="<?php echo something ?>">Click Me</a> 

Затем откройте его в JQuery с помощью

$(this).data('foobar'); 

ПФС К сожалению мой PHP кодирования навыки дрянь!

+0

Я не уверен, могу ли я использовать '.click()' cuz, я использую некоторые значения PHP в этой функции .. внутри моей функции есть функция ajax –

+0

@EddieD. затем сохраните значения PHP в некоторых переменных в теге скрипта. – iConnor

+0

@ EddieD. Вы можете поместить в него php-код, пока JavaScript находится на одной странице. Вы можете поместить Ajax в него и т. Д. Если вы работаете с Ajax и хотите присоединить события к динамически добавленному контенту, взгляните на использование обработчика 'on()'. –

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