1

我有一个覆盖页面,其中有一个父 div 和子 div 像这样

<div id="completeBlock" style="display:block">
    <div id="id1" style="display:block">
       This is div one
    </div>
    <div id="id2" style="display:none">
       This is div two
    </div>
        <div id="id3" style="display:none">
       This is div three
    </div>
</div>

和单独的链接来显示 div

<a onclick=doChangeDiv(id1)>link one</a>
<a onclick=doChangeDiv(id2)>link two</a>
<a onclick=doChangeDiv(id3)>link three</a>

我的目标是一次显示一个 div 而其他的不显示。它在所有浏览器中都可以正常工作,但在 Firefox 中它在我第一次打开页面时工作。如果我关闭页面并再次打开它,隐藏的 div 不能变得可见,我收到错误“TypeError:无法访问死对象”

我的 jquery 脚本是

function doChangeDiv(fromId){
$('#completeBlock').children().each(function() {
        if($(this).css('display') != 'none')
        {
            var hideId = '#'+$(this).attr('id');
            $(hideId).hide();
        }
   });
   $(fromId).attr('display','block');
   $(fromId).show();
}

请帮我解决这个问题。

4

1 回答 1

0

看到这个:http: //jsfiddle.net/uD9mU/1/

$(document).ready(function () {

$('a').click(function (e) {
    e.preventDefault();
    var fromId = $(this).attr("data");
    //alert(fromId);
    $('#completeBlock').children().hide().filter('#'+fromId).fadeIn('slow');
});

});
于 2013-01-21T13:18:17.563 回答