2013-02-09 4 views
2

Пожалуйста, проверьте этот код:JQuery slidedown и скрыть вопрос

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();, его показ скрыть ошибки не является функцией.

Мне просто нужен эффект скольжения, когда это значение данных добавлено.

+0

Try: '$ ("другие вовлеченным-ДИВ-обертка:. Последний "). После того, как (данные);' Тогда '$ (" другие вовлеченным-ДИВ-обертка:. Последний"). SlideDown («slow»); ' – sdespont

+0

@sdespont По-прежнему нет эффекта :( –

+0

Почему вы назначаете два отдельных экземпляра переменной данных? – Swordfish0321

ответ

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"); 
+0

Большое спасибо .. Это то, что я хотел. –

2

data = data.hide() не работает, потому что это всего лишь текст HTML, а не объект jquery.

Проверьте

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

возвращает объект jquert. Это может быть проблемой.

+0

Что мне теперь делать? –

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.