2012-03-16 88 views
2

我发现了另一个类似的问题,但几乎所有问题都是针对Android开发等高级内容。我想,我的问题很简单。我有这两个代码:JavaScript onClick仅在第二次点击后才能工作

function toggle(d) 
{ 
    var o=document.getElementById(d); 
    o.style.display=(o.style.display=='none')?'block':'none'; 
} 

而在另一个文件中,我得到了:

<a href="javascript:;" onmouseover="toggle('maisinfo');">More Info </a> 

当我点击了鼠标悬停(第二码),它只是之后的第二次尝试工作。

任何人都知道问题在哪里?

观察值:第一代码是在header.php中和上的single.php(WORDPRESS)第二

+0

你也可以发布html片段与maisinfo id? – stivlo 2012-03-16 03:46:20

回答

3

第一次,d由CSS设置; JavaScript没有看到该样式属性(请参阅Get the Rendered Style)。它最初看到o.style.display === ""(这不是'无')。因此,第一次点击将其设置为无,第二次点击将其设置为阻止。

将其更改为:

o.style.display = (o.style.display === 'block') ? 'none':'block'; 
+0

谢谢。现在工作完美:) – euDennis 2012-03-16 05:49:04

1

因为第一次的显示属性未设置因此它是不等于“无”

0

那么,有没有错,上面的代码。也许你的风格声明有些问题,比如将它设置为在你可能不想要的开始时阻止。下面是我为测试代码所做的一个简单JSFiddle:http://jsfiddle.net/77DMd/1/

希望这有助于。

+0

此外,你应该检查你的控制台是否有任何警告或错误。切换功能是否在使用前被实际声明过 – Mutahhir 2012-03-16 04:38:00

相关问题