我尝试过很多方法来使用我在互联网上找到的示例来滑动使用after()创建的新元素,但它不起作用。
我没有成功地尝试了这些可能性 使用以下代码,元素快速显示,没有滑动效果
$this.after("<p id='comment' style='display:none'>" + data + "</p>");
$("#comment").slideDown(2000);
使用以下代码,不会显示该元素
$(this).after("<div id='comment' style='display:none'>" + data + "</p>", function(){
$("#comment").slideDown().css('display', 'inline');
});
使用以下代码,不会显示该元素
$(this).after("<div id='comment' >" + data + "</p>", function(){
$("#comment").slideDown(2000);
});
也许,我应该澄清代码是在ajax中
$(document).ready(function() {
$(function() {
$("#button<?php echo $data['id']; ?>").click(function(e) {
var $this = $(this);
$.ajax({
type: "POST",
url: "<?php echo Yii::app()->createUrl('comment/create'); ?>",
success: function(data) {
$this.after("<p id='comment' style='display:none'>" + data + "</p>");
$("#comment").slideDown(2000);
}
});
});
});
});
提前感谢您的帮助。
答案 0 :(得分:1)
试试这个:创建一个自定义函数来触发slideDown,在你的ajax调用成功中调用它。
$(document).ready(function() {
$(function() {
function mySlideFn(){
$("#comment").slideDown(2000);
}
$("#button<?php echo $data['id']; ?>").click(function(e) {
var $this = $(this);
$.ajax({
type: "POST",
url: "<?php echo Yii::app()->createUrl('comment/create'); ?>",
success: function(data) {
$this.after("<p id='comment' style='display:none'>" + data + "</p>");
mySlideFn();
}
});
});
});
});
答案 1 :(得分:0)
以下代码似乎工作正常:
$(this).after('<p class="comment" style="display: none;">A comment</p>');
$('.comment').slideDown(2000);
也许在您的第一个示例中,您没有正确引用$(this)
。见jsFiddle