2011-04-01 82 views
0

我有這個jQuery腳本,點擊鏈接add info,然後隱藏它,並提出一個表單。當你按下取消它需要再次顯示H3,但它deosnt表露出來,我不知道爲什麼:jquery問題:點擊功能是不是顯示h3標題?

繼承人我的工作代碼:http://jsfiddle.net/GLqcx/2/

+0

jsFiddle有一個「整潔」按鈕,可以正確地格式化您的代碼。在保存您的jsFiddle演示之前使用它。 – 2011-04-01 18:38:34

回答

3
$("h3").show(); 

應該

$("h3 a").show(); 
+2

是的,或只是'$(「。addInfo」)。show()' – karim79 2011-04-01 18:33:12

+0

nice @ karim79 +1爲最快的查找優化 – daniellmb 2011-04-01 19:33:32

0

或者,

​​

而不是$(this).hide()

由於您在代碼中隱藏了鏈接而不是h3。所以當你試圖展示h3時,鏈接仍然隱藏。

0

在你.addInfo單擊處理程序,你用這條線隱藏<a>

$(this).hide(); 

然而,在你的.cancelInfo單擊處理程序,你是顯示了<h3>

$("h3").show(); 

你需要更換一個或另一個,以便您隱藏/顯示<h3><a>

我冒昧修復你的問題並優化你的代碼。以下是我想出了:

$(".cancelInfo").click(function(e) { 
    e.preventDefault(); 
    $(this).parent().hide().next().show(); 
}); 

$(".addInfo").click(function(e) { 
    e.preventDefault(); 
    $(this).parent().hide().prev().show(); 
}); 

Here's a demo showing that code in action ->

而不是使用廣泛選擇的,我們現在用我們的文檔結構的知識來遍歷和操作正確的元素。另外,我們只做一個選擇,從而節省一些時間和工作。