2013-01-21 73 views
1

我有一个覆盖网页,我有一个父DIV和儿童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,使其他人none.It在所有浏览器中都能正常工作,但在Firefox第一次打开页面时工作正常。如果我关闭页面并再次打开, 隐藏的div无法显示我得到一个错误“TypeError:无法访问死对象T”

我的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(); 
} 

请帮我理清这个问题。

回答

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

}); 
+0

感谢您的答复它的工作原理fine.But事情是我有不同类别超过3个锚标记,而我想这个点击事件和一些锚标签绑定我不想绑定这个点击事件。是否有任何方法将相同的事件绑定到不同的类上 – user1934095

+0

如果你有带类“a1”,“b1”,“c1”的锚标签,则使用'$('a.a1 ,a.b1,a.c1')。click(...);' – Anujith

+0

非常感谢你 – user1934095