2012-03-16 98 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

相關問題