Div无法显示

时间:2013-01-21 13:07:15

标签: javascript jquery

我有一个叠加页面,我有一个父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();
}

请帮我解决这个问题。

1 个答案:

答案 0 :(得分: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');
});

});