2010-12-14 119 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