2011-03-30 50 views
0

我有以下的Jquery:點擊一個P標籤恰好在Jquery中快速?

$('.agendaNav').click(function(event){ 
    $(this).find('.rightArrow').attr('src', '/images/arrowdown.png'); 
    if($('.agendaDay').is(':hidden')){ 
     $('.agendaDay').show(); 
    } else { 
     $('.agendaDay').hide(); 
    } 
}); 

下面是HTML

<p class="agendaNav"><img src="/images/arrowright.png" class="rightArrow" /> WEEK AT A GLANCE</p> 

會發生什麼事是.agendaDay類隱藏,但它得到的再次顯示非常快,不管我有多快單擊該元素。

任何想法爲什麼它不工作?也許我必須讓它成爲一個標籤?

+0

我完全不理解這個 - 在你的JS中,你永遠不會顯示'agendaDay'元素,你只能隱藏它。以及具有'agendaDay'類的元素在哪裏?你可以在[JSFiddle](http://jsfiddle.net)或JSbin或類似的文章上發佈一個工作示例嗎? – 2011-03-30 00:27:17

+1

能否請您用包含'.agendaDay'的代碼精心設計您的示例。你是否也想用if/else來做同樣的事情? – 2011-03-30 00:27:57

回答

4

您在ifelse中都運行相同的代碼。試試這個關於大小:

$('.agendaNav').click(function(event){ 
    $(this).find('.rightArrow').attr('src', '/images/arrowdown.png'); 
    if($('.agendaDay').is(':hidden')){ 
     $('.agendaDay').show(); // <------------- change this line 
    } else { 
     $('.agendaDay').hide(); 
    } 
}); 

此外,there's a jQuery function for that

$('.agendaNav').click(function(event){ 
    $(this).find('.rightArrow').attr('src', '/images/arrowdown.png'); 
    $('.agendaDay').toggle(); 
}); 

意圖更加清晰:檢查。更簡潔:檢查。更高效:檢查。程序員錯誤的空間較小:檢查

+0

哦,拍攝這是我的方式我試過切換,但它仍然有同樣的問題,請看這裏:http://icuc2011.com/agenda點擊「周概覽」 – Jordash 2011-03-30 03:09:37

+0

我試過$(this).next ()和$(this).next('。agendaDay'),它似乎沒有選擇它。 – Jordash 2011-03-30 03:26:25

+0

你說得對。我想在每個'.agendaNav'後面有一個'.agendaDay',你想要切換。我在我的回答中提出的原始代碼對我來說工作得很好。 http://jsfiddle.net/mattball/X3KeP/ – 2011-03-30 12:35:37