2011-04-01 84 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 ->

而不是使用广泛选择的,我们现在用我们的文档结构的知识来遍历和操作正确的元素。另外,我们只做一个选择,从而节省一些时间和工作。