2013-08-19 2 views
1

Я пытаюсь выяснить, как показать/скрыть элемент в зависимости от того, имеет ли элемент «.question a» класс «checked» или нет. Но он не работает. Кто-нибудь знает, почему;? (Если hasClass условие не работает jquery

$().ready(function() { 

    var myLink = ".question a"; 
    if (myLink.hasClass('checked')) { 
     $('.answer').show(300); 
    } 
    else { 
     $('.answer').hide(300); 
    } 

}); 
+1

'вар MyLink = $ ("вопрос а.");' –

+0

, сколько вопросов будет там на странице –

+0

@ArunPJohny только один – dmn77

ответ

4

Попробуйте как

$(document).ready(function() { 
    var myLink = $(".question a"); 
    if (myLink.hasClass('checked')) { //You can also use $(this).hasClass 
     $('.answer').show(300); 
    } 
    else { 
     $('.answer').hide(300); 
    } 
}); 

Если вы хотите изменить статус ссылки затем вызвать то же самое время как ваше событие вызвало как

$(myLink).on('click',function(){ 
    if ($(this).hasClass('checked')) { 
     $('.answer').show(300); 
    } 
    else { 
     $('.answer').hide(300); 
    } 
}); 
+0

Спасибо, это частично работает ING. Проблема в том, что теперь он скрыт как значение по умолчанию, и он не отражает состояние класса ссылок. В firebug я вижу, что он переходит от «class =» к «ничего» (и обратно в зависимости от того, сколько раз я нажимал) при нажатии на него. Но '.answer' всегда скрыт. Любая идея почему? Btw. У меня только на '.question a'element (link) – dmn77

+0

Тогда вам нужно проверить класс, когда вы меняете состояние класса link также – Gautam3164

+0

Хорошо, решите с помощью' $ (myLink) .click (function() '; D – dmn77

1

Попробуйте

$(function() { 

    var myLink = $(".question a"); // need to use jQuery selector here 
    if (myLink.hasClass('checked')) { 
     $('.answer').show(300); 
    } 
    else { 
     $('.answer').hide(300); 
    } 

}); 
0

Repalce

var myLink = ".question a"; 

С

var myLink = $(".question a"); 
0

добавить $ до того MyLink

$(document).ready(function() { 

    var myLink = ".question a"; 
    if ($(myLink).hasClass('checked')) { 
     $('.answer').show(300); 
    } 
    else { 
     $('.answer').hide(300); 
    } 

}); 
+0

Спасибо, проблема в том, что он всегда скрыт сейчас (хотя класс меняется с «проверено» на ничего. – dmn77

+0

напишите пример в jsfiddle.net – lealam