JavaScript onClick仅在第二次点击后才能工作

时间:2012-03-16 03:43:47

标签: javascript wordpress

我发现了另一个类似的问题,但几乎所有问题都适用于高级内容,例如Android开发。我想,我的问题很简单。我有这两个代码:

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>

当我点击鼠标悬停(第二个代码)时,它在第二次尝试后才起作用。

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

Obs。:第一个代码位于header.php中,第二个代码位于single.php(WORDPRESS)

3 个答案:

答案 0 :(得分:4)

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

将其更改为:

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

答案 1 :(得分:1)

因为第一次没有设置display属性因此它不等于“none”

答案 2 :(得分:0)

嗯,上面的代码没有任何问题。也许某些东西与你的风格声明有关,比如将它设置为在你可能不想要的开始时阻止。这是我为测试代码而制作的一个简单的JSFiddle:http://jsfiddle.net/77DMd/1/

希望这有帮助。