Javascript内嵌隐藏在href属性中

时间:2014-02-24 19:41:22

标签: javascript

我想找到一种方法来隐藏和重现我网页上的内容:

<a href="javascript: document.getElementById('something').style.display = 'inline'">
prompt
</a>
<div id="something" style="display:none">
text
</div>

为什么这不起作用?这是一种方法,让我在单击提示时重新显示文本。

我特别感兴趣的是为什么我的href = javascript部分不起作用,而不是使用onclick的解决方法。

1 个答案:

答案 0 :(得分:3)

这(显然)会做出魔术:

<a href="javascript:(function(){document.getElementById('something').style.display = 'inline';})()">

但我不会赌它,而且我也无法弄清楚为什么使用自动执行的anom功能。

更多关于自动执行anom函数的信息:

http://markdalgleish.com/2011/03/self-executing-anonymous-functions/

更多关于这种(古老?)技术也被称为纯粹主义者“立即调用函数表达式(IIFE)”:

http://benalman.com/news/2010/11/immediately-invoked-function-expression/

我仍然试图理解它为什么会起作用,我认为它与这些函数的执行是相关的“inmediatly”,这意味着甚至在传播点击事件或浏览器尝试之前导航,可能是浏览器/ jsengine访问href attr。

您应该尝试使用“onclick”事件:

<a href="#" onclick="document.getElementById('something').style.display = 'inline'">
prompt
</a>

请参阅此问题(与上述技术相关):

javascript hide/show element

与使用js脚本的href属性相关,请看这个问题:

JavaScript function in href vs. onclick