我会尽可能简单地解释这个问题:
我有两个潜水器
第一个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/