2010-12-14 170 views
0

我有一個點擊標題時,下面的HTML火狐顯示=塊問題

<a id="rptQuestions_ctl01_hlQuestion" onclick="rptQuestions_ctl01_pnlAnswer.style.display = rptQuestions_ctl01_pnlAnswer.style.display == 'none'? 'block' : 'none';" href="javascript:">Header Link</a> 

      <div id="rptQuestions_ctl01_pnlAnswer" style="display:none;"> 

      My Text to display 

</div> 

這個工程,我期望在IE8,它顯示在div當你點擊標題鏈接,然後隱藏它再次鏈接。不過,在Firefox中,當我點擊標題鏈接時,什麼也沒有發生。 我假設這是IE瀏覽器正在原諒我犯的一個錯誤,Firefox堅持規則,但我看不出我做錯了什麼。 任何想法?

---編輯

我用下面的代碼嘗試這樣做,它工作正常:

 <a id="rptQuestions_ctl01_hlQuestion" onclick="jasvascript:document.getElementById('rptQuestions_ctl01_pnlAnswer').style.display='block';" href="#">My header Link</a> 

      <div id="rptQuestions_ctl01_pnlAnswer" style="display:none;"> 
My Text 

</div> 

如此看來問題是不能正常工作三元運算符。 任何人都看到問題?

回答

1

的 「onclick」 屬性應該有下面的代碼: -

onclick="document.getElementById('rptQuestions_ctl01_pnlAnswer').style.display = document.getElementById('rptQuestions_ctl01_pnlAnswer').style.display == 'none' ? 'block' : 'none';" 

希望它能幫助。

+0

感謝@Knowledge渴望,但這是行不通的。我仍然無法使用此代碼獲取div來執行dsiplay – Ben 2010-12-14 16:15:08

+1

對不起,我當時非常笨拙。此代碼知道工作正常。 – Ben 2010-12-14 16:31:22

1
<a id="rptQuestions_ctl01_hlQuestion" onclick="javascript:document.getElementById('rptQuestions_ctl01_pnlAnswer').style.display = document.getElementById('rptQuestions_ctl01_pnlAnswer').style.display == 'none'? 'block' : 'none';return false" href="#">Header Link</a> 

     <div id="rptQuestions_ctl01_pnlAnswer" style="display:none;"> 

     My Text to display 

+0

謝謝@thirtydot,但這不起作用。我仍然無法使用此代碼獲取div到dsiplay – Ben 2010-12-14 16:14:42

0
  1. 沒有,它工作在Firefox(只在3.6.13測試)。
  2. 你不能使用jQuery或其他一些庫嗎?對不起,這太難看了...... :-)
+1

+1 to jQuery:http://api.jquery.com/toggle/ – thirtydot 2010-12-14 13:04:56

0

首先也是最重要的。 USE:document.getElementById(「要使用的ID」);

二。嘗試使用JavaScript方法來實現這一點。而在onclick使用功能,或直接在< script type="text/javascript"></script> 像這樣的東西做一個分配:document.getElementById("rptQuestions_ctl01_hlQuestion").onclick = function(){ document.getElementById('rptQuestions_ctl01_pnlAnswer').style.display = rptQuestions_ctl01_pnlAnswer.style.display == 'none' ? 'block' : 'none'; }

1

沒有三元運算符相同的代碼:

<a id="rptQuestions_ctl01_hlQuestion" onclick="javascript:if(document.getElementById('rptQuestions_ctl01_pnlAnswer').style.display == 'none'){document.getElementById('rptQuestions_ctl01_pnlAnswer').style.display='block'}else{document.getElementById('rptQuestions_ctl01_pnlAnswer').style.display='none'};return false" href="#">My header Link</a> 
<div id="rptQuestions_ctl01_pnlAnswer" style="display:none;"> 
    My Text 
</div> 

上面的代碼也工作了,所以我我不知道這將如何改變任何事情。如果你將這段代碼粘貼到一個新的HTML文件中,它將會起作用。如果將它放入文件時不起作用,那麼問題可能在文件中的其他位置。在這種情況下,你應該發佈更多的周邊代碼。

+1

謝謝@thirtyDot,之前我有點笨,並設法獲得@knowledge渴望工作的答案。我不得不給他接受的答案,因爲他的代碼是第一個發佈的。無論如何,謝謝你的幫助。 – Ben 2010-12-14 16:33:00