使用jQuery隐藏和显示DIV而不使用display:none

使用jQuery隐藏和显示DIV而不使用display:none,jquery,html,css,Jquery,Html,Css,我使用的是标准: $(document).ready(function() { $('#toggleme').click(function(){ $('div.#showhide').toggle(); }); $('#closer').click(function(){ $('div.#showhide').toggle(); }); }); 显示和隐藏div,但当站点设置为display:none时该div消失,我的所有内容在页面上移 是否有不同的

我使用的是标准:

$(document).ready(function() {
   $('#toggleme').click(function(){
     $('div.#showhide').toggle();
   });
 $('#closer').click(function(){
     $('div.#showhide').toggle();
   });
 });
显示和隐藏div,但当站点设置为
display:none时该div消失,我的所有内容在页面上移

是否有不同的显示/隐藏div的方法,或者我应该将每个div以固定的宽度/高度包装在父div中?

为此使用
.show()
hide()
方法

-显示匹配的元素

-隐藏匹配的元素

或也尝试一下


-显示或隐藏匹配的元素

CSS属性
可见性:隐藏是您想要的,它将像显示块一样隐藏它,但空间仍然存在,因此内容不会移动。

将可见性设置为隐藏,如下所示:

$('div.#showhide').css('visibility', 'hidden');
$('div.#showhide').css('visibility', 'visible');
像这样再显示一次:

$('div.#showhide').css('visibility', 'hidden');
$('div.#showhide').css('visibility', 'visible');

您可以使用
jQuery.show()
jQuery.hide()
方法分别显示和隐藏元素。

可以尝试以下方法:

$(document).ready(function() {

    $('#toggleme').toggle(function(){
        $('.showhide').animate({ "height", "0px" });
    },
    function(){
        $('.showhide').animate({ "height", "SomeBaseHeightpx" });
    });

    $('#closer').toggle(function(){
        $('.showhide').animate({ "height", "0px" });
    },
    function(){
        $('.showhide').animate({ "height", "SomeBaseHeightpx" });
    });

});
对它进行一些处理,并将其调整到您的HTML,但这应该正是您想要的


更多信息,请参见&

toggle()在曲面下执行此操作。这并不能解决他的内容移动问题。我不相信IE的任何版本都支持这一点。可能不是最好的跨浏览器方法。我不确定IE5.5,但我知道IE6和以上支持可见性:隐藏;一个简单的方法是设置不透明度:0;在元素上有一个过渡。对于IE来说,你需要一个解决办法。没有人支持IE7以下的版本,所以这一点是静音的,但不是每个人都升级了FF,歌剧,甚至Safari,这三个版本都有“可见性”问题。一个问题是你使用
,你想要id还是类?我想。是一个分隔符,我可以只使用#吗?您可以只使用
#
和元素ID来获取具有该ID的第一个元素。使用
将获取具有该类名的每个元素。示例:
$(“#eleID”)
将获取id设置为
eleID
的第一个元素,而
$(“.eleClass”)
将抓取具有类的每个元素
eleClass
啊,酷!谢谢你!:)@williamsongibson-如果答案对你有效,别忘了升级投票并将其标记为已接受。这不是交叉兼容(在今天大多数使用的版本上)。我在IE 7/8/9、Firefox和Chrome中进行了测试,它在所有方面都有效。在哪个浏览器中不起作用?FF有以前的版本,就在去年夏天,它不能在中正常工作,尤其是在具有固定或绝对位置的div中。就在几个月前,我还遇到过这样的麻烦。最近的更新已经解决了这个问题,但是如上所述,有些人不更新firefox,但可能一年更新一次。