我会尽可能简单地解释这个问题:
我有两个div
第一个div:<div id="first" style="color:black;"></div>
第二个div:<div id="second" style="color:red;display:inline;"></div>
我希望当我在第一个div上调用slideUp时,它已经隐藏了,把第二个的所有css样式,INCLUDING显示属性(在第一个div中是块,第二个是内联)然后才显示div。
我尝试这样做,但是第二个显示属性丢失了,第一个div的显示属性恢复为阻止,而不是内联。
$("first").slideUp(function(){
$(this).attr("style","display:none;"+$("second").attr("style"));
$(this).slideDown();
});
虽然怎么办?
对不起我的英语,但我来自保加利亚,真的需要这个,因为这是一个更大项目的重要组成部分。
提前致谢!
答案 0 :(得分:0)
这就是.slideDown()
的工作原理,它将元素显示为块。
$(this).slideDown(function(){
$(this).css('display','inline');
});
这将使其内联但可能也会破坏动画效果。这取决于
答案 1 :(得分:0)
有两个主要问题。首先,您应该使用jQuery.css来控制div的样式。第二,要按ID选择div,您需要使用CSS“#”符号:
$(this).attr("style", $("#second").attr("style"));
$(this).css("display", "none");
答案 2 :(得分:0)
如何制作第二个元素的副本并替换文本?
$("#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();
});