如何在jquery动画函数中传递原始显示属性



我会尽可能简单地解释这个问题:

我有两个潜水器

第一个div:<div id="first" style="color:black;"></div>

第二个分区:<div id="second" style="color:red;display:inline;"></div>

当我在第一个div上调用slideUp(它已经被隐藏)时,我希望放置第二个div的所有css样式,包括display属性(在第一个div.中是block,在第二个div.是inline),然后才显示div。

我试着这样做,但第二个display属性丢失了,第一个div的display属性恢复为block,而不是inline。

$("first").slideUp(function(){ 
    $(this).attr("style","display:none;"+$("second").attr("style"));
    $(this).slideDown();
});

知道怎么做吗?

对不起我的英语,但我来自保加利亚,非常需要这个,因为这是一个更大项目的重要组成部分。

谢谢!

这就是.slideDown()的工作方式,它将元素显示为块。

$(this).slideDown(function(){
   $(this).css('display','inline');
});

这将使其内联,但可能也会破坏动画效果。这取决于

主要有两个问题。首先,您应该使用jQuery.css来控制div的样式。其次,要按id选择div,需要使用CSS"#"符号:

$(this).attr("style", $("#second").attr("style"));
$(this).css("display", "none");

复制第二个元素并替换文本怎么样?

$("#first").slideUp(function () {
    var content = $(this).text();
    var copy = $("#second").clone();
    $(copy).html("");
    $(copy).text(content);
    $(copy).attr("id", "first");
    $("#first").replaceWith(copy);
    $("#first").slideDown();
});

http://jsfiddle.net/kmd97/rKejG/19/

最新更新