JavaScript函数在Opera中运行良好,但不';在Firefox中根本不起作用。为什么?
这是我的JavaScript函数:JavaScript函数在Opera中运行良好,但不';在Firefox中根本不起作用。为什么?,javascript,firebug,Javascript,Firebug,这是我的JavaScript函数: function switch_div(firstID,secondID) { if((document.getElementById(firstID).style.display == 'inline') && (document.getElementById(secondID).style.display == 'inline')) { document.getElementById(firstID)
function switch_div(firstID,secondID) {
if((document.getElementById(firstID).style.display == 'inline') &&
(document.getElementById(secondID).style.display == 'inline')) {
document.getElementById(firstID).style.display = 'none';
} else if(document.getElementById(firstID).style.display == 'inline'){
document.getElementById(firstID).style.display = 'none';
document.getElementById(secondID).style.display = 'inline';
} else if (document.getElementById(firstID).style.display == 'none') {
document.getElementById(firstID).style.display = 'inline';
document.getElementById(secondID).style.display = 'none';
}
}
这是我的链接和我想切换的两个s
通过每次单击相同的链接在它们之间:
<a href="#" onclick="switch_div('first_choice','second_choice');return false" style="position:relative">
<div id="first_choice" style="position:relative;">hello</div>
<div id="second_choice" style="position:relative;">bye</div>
你好
再见
这个指向JavaScript函数的链接在Opera中运行良好,但在
全部在Firefox中。为什么会这样?为两个div提供了显示的样式属性。最好在课堂上给他们上课。希望这就是你想要的
<a href="#" onclick="switch_div('first_choice','second_choice');return false" style="position:relative">
<div id="first_choice" style="position:relative;display: inline">hello</div>
<div id="second_choice" style="position:relative;display: none">bye</div>
<script>
function switch_div(firstID,secondID)
{
if((document.getElementById(firstID).style.display == 'inline') && (document.getElementById(secondID).style.display == 'inline'))
{
document.getElementById(firstID).style.display = 'none';
}
else if(document.getElementById(firstID).style.display == 'inline')
{
document.getElementById(firstID).style.display = 'none';
document.getElementById(secondID).style.display = 'inline';
}
else if (document.getElementById(firstID).style.display == 'none')
{
document.getElementById(firstID).style.display = 'inline';
document.getElementById(secondID).style.display = 'none';
}
}
</script>
为两个div提供了显示的样式属性。最好在课堂上给他们上课。希望这就是你想要的
<a href="#" onclick="switch_div('first_choice','second_choice');return false" style="position:relative">
<div id="first_choice" style="position:relative;display: inline">hello</div>
<div id="second_choice" style="position:relative;display: none">bye</div>
<script>
function switch_div(firstID,secondID)
{
if((document.getElementById(firstID).style.display == 'inline') && (document.getElementById(secondID).style.display == 'inline'))
{
document.getElementById(firstID).style.display = 'none';
}
else if(document.getElementById(firstID).style.display == 'inline')
{
document.getElementById(firstID).style.display = 'none';
document.getElementById(secondID).style.display = 'inline';
}
else if (document.getElementById(firstID).style.display == 'none')
{
document.getElementById(firstID).style.display = 'inline';
document.getElementById(secondID).style.display = 'none';
}
}
</script>
我看不到跨浏览器问题:对我来说,它在Opera中也不起作用。这并不奇怪:您正在检查内联显示的'style'属性,但两个div都没有'display:inline'
无论哪种方式,inline都不是div通常的“display”模型,您通常会使用“block”
建议:
<style type="text/css">
.hidden { display: none; }
</style>
<a href="#first_choice" id="togglelink">Clickety</a>
<div id="first_choice">
blah 1
</div>
<div id="second_choice">
blah 2
</div>
<script type="text/javascript">
function hideToggler(link, a, b) {
var state= link.hash.substring(1)==a.id; // set which div is shown initially from the link destination
link.onclick= function() { // toggle divs
state= !state;
a.className= state? 'hidden' : '';
b.className= state? '' : 'hidden';
return false;
};
link.onclick(); // hide one of the divs to begin with
}
hideToggler(
document.getElementById('togglelink'),
document.getElementById('first_choice'),
document.getElementById('second_choice')
);
</script>
.hidden{显示:无;}
废话1
废话2
功能隐藏选择器(链路,a,b){
var state=link.hash.substring(1)=a.id;//设置从链接目标开始显示哪个div
link.onclick=function(){//toggle divs
状态=!状态;
a、 className=状态“隐藏”:“”;
b、 className=状态?“”:“隐藏”;
返回false;
};
link.onclick();//隐藏一个要开始的div
}
隐匿者(
document.getElementById('togglelink'),
document.getElementById('first_choice'),
document.getElementById('second_choice')
);
我看不到跨浏览器问题:对我来说,它在Opera中也不起作用。这并不奇怪:您正在检查内联显示的'style'属性,但两个div都没有'display:inline'
无论哪种方式,inline都不是div通常的“display”模型,您通常会使用“block”
建议:
<style type="text/css">
.hidden { display: none; }
</style>
<a href="#first_choice" id="togglelink">Clickety</a>
<div id="first_choice">
blah 1
</div>
<div id="second_choice">
blah 2
</div>
<script type="text/javascript">
function hideToggler(link, a, b) {
var state= link.hash.substring(1)==a.id; // set which div is shown initially from the link destination
link.onclick= function() { // toggle divs
state= !state;
a.className= state? 'hidden' : '';
b.className= state? '' : 'hidden';
return false;
};
link.onclick(); // hide one of the divs to begin with
}
hideToggler(
document.getElementById('togglelink'),
document.getElementById('first_choice'),
document.getElementById('second_choice')
);
</script>
.hidden{显示:无;}
废话1
废话2
功能隐藏选择器(链路,a,b){
var state=link.hash.substring(1)=a.id;//设置从链接目标开始显示哪个div
link.onclick=function(){//toggle divs
状态=!状态;
a、 className=状态“隐藏”:“”;
b、 className=状态?“”:“隐藏”;
返回false;
};
link.onclick();//隐藏一个要开始的div
}
隐匿者(
document.getElementById('togglelink'),
document.getElementById('first_choice'),
document.getElementById('second_choice')
);
hey adi…您能使用jQuery吗?这将使您从任何其他浏览器中解脱出来。谢谢您的回复。事实上,我根本不知道jQuery。这就是为什么我使用了JS。如果答案有用,请注意增加投票答案。DIV的默认显示值是空字符串,而不是内联
。嘿,adi…您能使用jQuery吗?这将使您从任何其他浏览器中解脱出来。谢谢您的回复。事实上,我根本不知道jQuery。这就是为什么我使用了JS。如果答案有用,请注意增加投票答案。DIV的默认显示值是空字符串,而不是内联
。您好,非常感谢您的回复。我尝试了您的代码,但它也不适合我,我想知道为什么?链接出现了,但当我点击它时,什么也没有发生!然后我尝试了你的密码,但很奇怪!这里不起作用:(…想知道为什么?嗨,非常感谢你的回复。我尝试了你的代码,但对我也不起作用,我想知道为什么?链接出现了,但当我点击它时,什么都没有发生!然后我尝试了你的代码,但奇怪!它在这里不起作用:(…不知道为什么?是的,谢谢,这是我在onload事件中设置的内容,但忘了在这里写,非常感谢。是的,谢谢,这是我在onload事件中设置的内容,但忘了在这里写,非常感谢