jQuery hide / show

时间:2011-01-20 09:13:02

标签: jquery hide show

我昨晚发现了jQuery,看起来非常好!我用它来显示/隐藏div ID,点击作为触发器显示最初隐藏在页面上的div ID。这很好用,我很自豪: - )

但是,我遇到了一个问题:单击一个触发器后,我希望它被隐藏起来。 所以我尝试添加一行来隐藏触发器onclick,但这不仅不起作用,现在我加载页面时显示最初隐藏的div。

这是我最初尝试过的:

$(document).ready(function () {  
$(‘#showhidetarget’).hide();

$(‘a#showhidetrigger’).click(function () {  
$(‘#showhidetarget’).show(200);  
**$(‘a#showhidetrigger’).hide();**  
});  
});

现在有人建议我可能无法隐藏触发器,因为它是一个内联元素(我对此一无所知)。他建议将一个触发器放在另一个div ID中,这是有道理的。因此,在使用名为“hideafterclick”的ID定义另一个包含a触发器的div之后,这就是代码的样子:

$(document).ready(function () {  
$(‘#showhidetarget’).hide();  

$(‘a#showhidetrigger’).click(function () {  
$(‘#showhidetarget’).show(200);  
**$(‘#hideafterclick’).hide();**  

但是同样令人遗憾的结果是:初始部分(触发器)没有隐藏,并且应该隐藏的div立即可见onload,而应隐藏它。当我删除包含.hide的粗线时,该过程非常有效。

有关我做错的任何建议吗?或者就如何解决这个问题? 只是为了完整:两个“部分”(div)包含代码和超链接。实际上点击第一部分(触发器)启动一个新窗口并显示第二部分,这工作正常。只是第一部分(触发器)必须随后变得不可见......

谁可以帮我这个?

我可以使用除div之外的其他东西吗?

提前感谢您的智慧和帮助,

托马斯(比利时)


亲爱的Shikiryu,亲爱的DavidYell,

非常感谢你的jsFiddles:我不知道jsFiddle,但它很棒,如此完整,如此清晰而又如此简单!
有时,幸福可以在一个似乎不重要的小细节中找到。因为最后,我所做的只是进行了一次小修改...... 我最初在包含href的触发器部分中编写的内容是:

<a id="showhidetrigger" href="HYPERLINK"> blabla</a>

根据您的示例,我最终更改了标记ID的位置,因此它变为:

<a href="HYPERLINK" id="showhidetrigger">blabla</a>  

不要问我为什么,我仍然不知道究竟是什么区别,但现在它就像一个魅力,这才是最重要的!当然HYPERLINK部分在我的情况下很长,它属于CFOutput有很多标签和查询,它包含另一个javascript来打开弹出窗口中的链接等等...所以也许这就是它在第一次出错的地方地点。

感谢您的帮助,我很高兴!

感激你的,

托马斯


大家好, 非常感谢你的答案到目前为止! 关于撇号:我使用了通用的“那些”好吧,似乎当从邮件窗口复制粘贴时,它们发生了变化,但它们在代码本身中没有问题,所以问题就不存在了。 关于**星号:我只是把它们放在那里指向它出错的部分。对不起,如果这引起了混乱,我已经明白**会让那条线变粗,我的错误。但无论如何,代码本身没有星号。 只是我没有添加最后一行,它完美地运行:onclick触发器的href打开(在新窗口中,使用javascript)和(最初隐藏)目标div变得可见。但是一旦我尝试隐藏了一个触发器,目标div就会显示为onload,而a触发器不会被隐藏onclick。所以然后我绑定在包含触发器的代码周围放置另一个div id,但结果相同。

亲爱的Davidyell,谢谢你的建议。我会试着看看它是否有效,我会告诉你的。我正在处理的页面非常复杂,在ColdFusion中(我不知道ColdFusion),触发器,带有javascript弹出窗口的href等都在CFoutput中。我希望我能够看到“森林里的树木”(从弗拉芒语谚语中自由翻译: - )

我会告诉你的!

亲切的问候,

托马斯(比利时)

4 个答案:

答案 0 :(得分:0)

我会做类似的事情,http://jsfiddle.net/nxPEr/1/

希望它有所帮助:)祝jQuery好运!这太棒了:))

答案 1 :(得分:0)

如果遇到类似这样的问题,请使用Firefox和Firebug,如果您有任何Javascript错误,它通常会指向正确的方向。尝试这样做以查看它显示的错误。

您还使用代替'",这可能会影响对网页的解析。

奇怪的是,你还有最后一行以**开头和结尾。这可能会导致错误。

答案 2 :(得分:0)

首先,忘记某人告诉你的事情。您可以隐藏内联和阻止组件。

然后,你不应该使用那些奇怪的 ,使用'"

Here's a demo

答案 3 :(得分:0)

$('#triggerDiv').click(function () {
    $(this).hide();
    $('#hiddenDiv').show(200);
});

使用撇号代替引号。

相关问题