jquery滑动和隐藏问题

时间:2013-02-09 15:17:35

标签: javascript jquery

请检查此代码:

 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();,则显示错误隐藏不是函数。

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

3 个答案:

答案 0 :(得分:2)

  

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

检查是否

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

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

答案 1 :(得分: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对象。

答案 2 :(得分: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");