使用.wrap()创建目标div后发出问题

时间:2013-09-24 15:28:57

标签: jquery click hidden visible

我遇到一个奇怪的问题,检查我刚用.wrap()创建的div是否可见。我正在包装一些div并使用ID作为目标。我已经过测试,以确保点击实际上是使用alert()注册的,而且是。

这是代码。

//Leftbar jQuery
$('ul.leftnav').wrap('<div id="leftnav-wrap" class="five columns alpha" />');
$('#leftnav-wrap').prepend('<div class="arrow" />');
$('#content').has('#leftnav-wrap').find('#page').wrap('<div class="eleven columns omega" />');

//Mobile Leftbar
$('h4.mobile.toggle').click(function(){
    if ($('#leftnav-wrap').is(':hidden')){
        $(this).addClass('active');
        $('#leftnav-wrap').addClass('active');
    }
    else{
        $(this).removeClass('active');
        $('#leftnav-wrap').removeClass('active');
    }
});

我编码的内容是否存在内在错误?它不会切换它所假设的任何活动类,并且我有另一个工作正常,只是它没有针对刚刚由.wrap()创建的ID。

JS在这里:jsfiddle.net/ZD7hz。不切换任何类

1 个答案:

答案 0 :(得分:0)

所以,这就是问题所在。它无法找到一个隐藏的div来添加一个类,它也找不到一个可见的div来删除该类。所以点击什么也没做。

我不得不先用CSS隐藏leftnav,然后为.active状态添加一个类,以便再次显示它。然后,切换工作正常......

糟糕!

修正了jsFiddle在这里:http://jsfiddle.net/ZD7hz/1/