这是我的JavaScript函数:

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';
    }
}


这是我的链接,我想切换两个
每次点击相同的链接即可:

<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中。为什么会这样?

最佳答案

我没有看到跨浏览器的问题:对我来说,它在Opera中也不起作用。这并不奇怪:您正在检查“样式”属性以进行内联显示,但是两个div都没有“ display:inline”。

无论哪种方式,内联都不是div常用的“显示”模型,通常会有“块”。

建议:

<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>

09-25 18:49