2013-12-09 3 views
-1

Вот скрипт JQuery У меня возникли проблемы с:JQuery удалить/добавить класс скрипт не работает

$(document).ready(function(){ 
    $("li").click(function(){ 
     $(".active").removeClass("active") 
     $(this).addClass("active") 
    }); 
}); 

сценарий должен сделать цвет фона ссылки/страницы вы в до оранжевого используя css, запрограммированный для класса (.) active , сценарий должен удалить активный класс из активной ссылки и добавить класс к ссылке, которая нажата.

о том, как предполагается, скрипт, чтобы сделать это: если Ли щелкнул вещь с активным классом будет иметь это класс удалено, чем щелкнутая вещь (это) Виль получить класс активен. я использовал это, но кажется, что это не работает

+0

паста HTML код – Noor

+0

положить semicolumn после:. $ ("Активный ") removeClass (" активный") – Michiel

+0

обжигают событие? –

ответ

-1

Ваш код должен выглядеть следующим образом:

$(function() { 
    $("li").click(function() { 
     $(".active").removeClass("active"); 
     $(this).addClass("active"); 
    }); 
}); 

Если я понимаю, что вы пытаетесь сделать, то это должно работать.

Я предлагаю сформулировать ваш вопрос немного лучше, так как это просто трудно понять с первого взгляда. Кроме того, предоставление jsFiddle часто является хорошим выбором, когда вы спрашиваете о javascript/jQuery.

+0

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

+0

и да, у меня есть код, за исключением точек с запятой, только я действительно не понимаю, как выводить код здесь, а точки с запятой не помогли ни –

+0

@DylanLindelauf Не могли бы вы объяснить, для чего был downvote?Просто потому, что мой пример не сработал для вас, это не значит, что это плохой код. – Kehlan

1

Я не знаю, если это ошибка копирования пасты или нет, но вам не хватает запятой:

$(document).ready(function(){ 
    $("li").click(function(){ 
     $(".active").removeClass("active"); 
     $(this).addClass("active"); 
    }); 
}); 

Update: На основе комментариев, которые я получил на этот ответ, я чувствую, что я должен добавьте, что я сказал, что полуточка отсутствует, потому что код был все в одной строке. Если это не так, то точка с запятой не решит проблему. С учетом сказанного, нет ничего плохого в вышеуказанном коде, поэтому ошибка должна быть где-то еще на странице без достаточной информации, предоставленной нам для ее исправления.

+0

Вам не нужны пол-двоеточия с javascript: http://inimino.org/~inimino/blog/javascript_semicolons –

+0

Я знаю это, но если бы все было на одной строке без прерывания строки, тогда вам нужна полуточка , Для меня я всегда добавляю полуколоны, чтобы устранить любые сомнения. –

+1

Это отличный совет, но это не ответ на этот вопрос. –

0
Try this: 

JS

$(document).ready(function(){ 
     $("li").click(function(){ 
     $(this).parent("ul").find("li").removeClass('active'); 
     $(this).addClass("active"); 
     }); 
    }); 

Кроме того, не забыл добавить ; в конце линии.

+0

'$ this' не определено – charlietfl

+0

Извините, забыл скобок ... проверьте ответ – Ani

+1

Почему это работает, если' $ ('. Active'). RemoveClass() 'does not? Также может быть слишком строгим, если в нем участвуют neste UL – charlietfl

0

Я не эксперт JQuery, но, если я хорошо понял ваш вопрос, это должно Worke ... он сделал для меня:

$('li').each(function(){ 

    $(this).click(function(){ 
     DeselectCurrent();   
     $(this).addClass("active"); 
    }); 
}); 

var DeselectCurrent = function() { 
    $('li').each(function(){ 
     var attr = $(this).attr('class');    

     if (typeof attr !== 'undefined' && attr !== false) { 
      $(this).removeClass("active"); 
     } 
    }); 
}; 

Да, я думаю, что это своего рода запутано, и не так эффективно, как это должно быть, но это может решить то, что вы пытаетесь сделать.

jsfiddle пример

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