我的网站因ajax调用而获取值。之后,我想将结果(字符串)插入标签中。但是,我想以这样的方式插入该结果:(1)它必须具有opacity = 0,然后(2)它将slideDown(),因此整个内容列表使用动画向下推,最后(3)改变不透明度= 1.想象一下,这就像Facebook消息列表插入过程
我计划这样做的方法是首先将结果字符串从ajax返回到opacity = 0。但是,我不知道如何使用jQuery从字符串中选择标记。我知道jQuery只能从DOM中选择。那怎么做?有什么建议吗?
由于
答案 0 :(得分:0)
Hide()是一个jquery函数,意味着它只适用于jquery对象,所以你必须先在DOM中注入html,然后在DOM元素上调用hide()。
$('#msgList').load (url,data,function(html){
var $this = $(this); // cache $(this) for performance
$this.hide().html(html); // inject the html in the DOM
$('#aa', $this).hide(); // hide #aa
$this.show(); // reveal the messageList
});
答案 1 :(得分:0)
以下将使用简单的.get()包装器进行ajax调用。
然后回调函数会将响应加载到jquery对象中并找到所需的标记。
然后隐藏此标记并将其附加到div容器。
最后它会将其滑下来。
//do ajax call
$.get( url, function(html) {
//load html into a jQuery object, find the tag by id then hide it
var $el = $(html).filter('#someId').hide();
//append element to the dom and slide it down
$el.appendTo('#someDiv').slideDown('slow');
});
答案 2 :(得分:0)
我会考虑将返回值放在SPAN中。隐藏将容纳它的容器。将SPAN的不透明度设置为0,然后将结果添加到容器中并将其放入容器中。完成后,向下滑动容器并在回调中显示结果,以显示slideDown方法。
$.ajax({
...
success: function(data) {
var container = $('#container').hide();
$('<span />').css( 'opacity', 0 )
.html(data.result)
.appendTo(container);
container.slideDown('normal', function() {
$(this).( 'span:first' )
.animate( { 'opacity': 1.0 } );
});
}
...
});