我有这个代码,我用它在我的网站的FAQ部分中显示一些问题的答案。单击该问题,下面显示包含答案的div。
它适用于Safari,Chrome,Opera甚至IE,但不适用于Firefox。
这些链接什么都不做。
任何想法为什么,或任何更好的方法来做'常见问题'部分?我已经在我的页面中加载了jQuery,如果在那里可以做得更好,我不知道。还是仅限CSS的解决方案?
这是我的代码:
JS代码:
<script type="text/javascript">
function toggle(tag) {
if (tag.style.display=='') {
tag.style.display='none'
} else {
tag.style.display=''
}
}
</script>
HTML code:
<a href="javascript: toggle(question1)">FAQ Question goes here</a>
<div id="question1" style="display:none">
<p>FAQ Answer goes here</p>
</div
答案 0 :(得分:4)
因为您设置了要切换的元素的ID,所以您需要使用:
document.getElementByID(tag).style.display
而不仅仅是你的切换功能中的tag.style.display
。
答案 1 :(得分:3)
尝试将显示设置为“阻止”
tag.style.display='block'
答案 2 :(得分:3)
更简单的方法是:
<script type="text/javascript">
function toggle(tag) {
tag.style.display = (tag.style.display == 'block') ? 'none' : 'block';
}
</script>
答案 3 :(得分:3)
好的,您的代码中存在许多问题
首先,用分号结束你的行很重要。
tag.style.display='none'
应为tag.style.display='none';
其次,您必须在id上使用document.getElementById来获取DOM元素
我会做这样的事情:
function toggle(elementId) {
var tag = document.getElementById(elementId);
...
}
答案 4 :(得分:2)
说真的,我建议你使用jquery,你不会遇到这种问题而且它不到30 Kbs。
以下是您要寻找的内容:
无论如何,您应该始终使用:document.getElementByID
来获取某个元素。
<强> EDITED 强>
如果我遇到这种情况,这取决于HTML的结构:
http://www.jsfiddle.net/dactivo/Qcm4G/
我会这样做:
$(".questionsheader").click(function(){
$(this).next("div").toggle(); }
);
其他一些注意事项
答案 5 :(得分:2)
既然你已经有了jQuery,试试这个:
$("#" + tag).toggle();
答案 6 :(得分:1)
尝试<a onclick='toggle(document.getElementById("question1"));'">
答案 7 :(得分:1)
试试这个(添加引号):
<a href="javascript: toggle('question1')">FAQ Question goes here</a>
<div id="question1" style="display:none">
<p>FAQ Answer goes here</p>
</div>
和(使用了getElementById):
<script type="text/javascript">
function toggle(tag) {
tag = document.getElementById(tag);
if (tag.style.display=='') {
tag.style.display='none'
} else {
tag.style.display=''
}
}
</script>
UPDATES :对于jQuery解决方案,我会使用jQuery Tabs方法:
<a class="toggle" href="#question1">FAQ Question Link 1</a>
<div id="question1" style="display:none">
<p>FAQ Answer goes here</p>
</div>
<a class="toggle" href="#question2">FAQ Question Link 2</a>
<div id="question2" style="display:none">
<p>FAQ Answer goes here</p>
</div>
和JS:
<script type="text/javascript">
$(document).ready(function() {
$('.toggle').click(function() {
$($(this).attr('href')).toggle();
return false;
});
});
</script>
答案 8 :(得分:0)
<a href="#" onclick="javascript:$(this).next().toggle();">Question</a>
<div style="display:none;">Answer</div>
或更多'通用'和清洁:
HTML:
<a class="question">Question 1</a>
<div class="answer">Answer 1</div>
<a class="question">Question 2</a>
<div class="answer">Answer 1</div>
CSS:
.answer{
display:none;
}
JS:
$(document).ready(function() {
$(".question").click(function(event){
$(this).next().slideToggle();
});
}
的slideToggle();或toggle(); 享受。