2013-08-19 110 views
1

我想了解如何顯示/隱藏一個元素取決於事實元素「.question a」是否有類「檢查」的事實。但它不起作用。任何人都知道這是爲什麼;(如果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'總是隱藏的。任何想法爲什麼?順便說一句。我只對'.question a'element(鏈接) – dmn77

+0

然後你需要檢查這個類,當你改變鏈接類的狀態時也是 – 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