2

请检查此代码:

 var data = $(".others-involved-div-wrapper-tobe-copied").html();
 data = '<div class="others-involved-div-wrapper" >'+data+'</div>';
 $(".others-involved-div-wrapper:last").after(data).slideDown("slow");
 if ($(".others-involved-div-wrapper").length > 1){
     $(".others-involved-div-wrapper:last .delete-more-others-involved").show();
 }

这里的 slideDown 效果不起作用。如果我在 div 中不显示任何数据,则看不到数据

data = '<div class="others-involved-div-wrapper" style="display:none;" >'+data+'</div>';

如果我这样做data = data.hide();,它显示错误隐藏不是一个功能。

当附加该数据值时,我只需要滑动效果。

4

3 回答 3

2

data = data.hide() 不起作用,因为它只是 HTML 文本而不是 jquery 对象。

检查是否

$(".others-involved-div-wrapper:last").after(data)

返回一个 jquert 对象。这可能是问题所在。

于 2013-02-09T15:26:50.117 回答
1

除非有我不知道的原因,否则您似乎将 jQuery 与变量分配混淆了。也许这可能对你有用:

 var content = $(".others-involved-div-wrapper-tobe-copied").html(),
     data = '<div class="others-involved-div-wrapper" >'+ content +'</div>';

 $(".others-involved-div-wrapper:last").after(data).slideDown("slow");

 if ($(".others-involved-div-wrapper").length > 1){

     $(".others-involved-div-wrapper:last .delete-more-others-involved").show();

 }

@GautamJeyaraman 是对的,您不能将 jquery 方法应用于非 jQuery 对象。

于 2013-02-09T15:40:40.467 回答
1

您还可以使用 jQuery 元素创建构造重构您的代码。

$("<div/>", {
    "class": "others-involved-div-wrapper",
    "html": $(".others-involved-div-wrapper-tobe-copied").html()
}).hide().insertAfter("div:last").slideDown("slow");

或者,甚至使用.clone().

$(".others-involved-div-wrapper-tobe-copied")
.clone()
.toggleClass("others-involved-div-wrapper-tobe-copied others-involved-div-wrapper")
.hide()
.insertAfter(".others-involved-div-wrapper:last")
.slideDown("slow");
于 2013-02-09T15:53:26.653 回答