如何使用此jquery代码显示我隐藏的div?

时间:2013-03-19 22:11:48

标签: jquery css html hide show

我有一个jquery代码来显示一个div并在同一页面上动态隐藏其余的div。即时通讯有一点问题,当我只尝试直接访问(通过url)到登录页面index.php #login im发送回主页index.php #home

这是因为登录设置为隐藏。那么无论如何我可以绕过这个吗?

    $('#w').live('click', function(){

        $('#b').css('display','none');
        $('#a').css('display','block');
    });

    $('#x').live('click', function(){
        $('#a').css('display','none');
        $('#b').css('display','block');
    });

<li><a href="#home" id=w>Home</a></li>
<li><a href="#login" id=x>Login</a></li>

<div id=b style="display:none;">

// Login

</div>

<div id=a>

// Main content

</div>

Ps:抱歉我的英文不好

1 个答案:

答案 0 :(得分:0)

我认为你可以这样做:

$(document).ready(function() {

  // set all event binding
  $('body').on('click', 'a[href="#home"], a[href="#login"]', function() {
       $('#a, #b').toggle(0);
  });

  // try to fire appropriate event using hash value

  var hash = window.location.hash; // return:  #home  OR #login
  $('a[href="'+ hash +'"]').click();

});

您可以从 here获取更多信息。

注意

但不确定,为什么你需要live事件。 live事件需要将事件绑定到动态加载的内容,即。页面加载后附加到DOM的元素。

如果您确实需要一个实时委托事件,那么代替live使用.on()因为该原因live已弃用并尝试使用jQuery最新版本。

如果您认为不需要live,那么请简化事件处理程序,如:

$('a[href="#home"], a[href="#login"]').on('click', function() {
    $('#a, #b').toggle(0);
});