json/ajax
调用,我在页面上创建了一些div。起初他们不会触发jQuery函数,然后我学会了解决我问题的.live()
。
但现在我想在每次页面加载时做一点动画。 (或改变,因为我通过json做它)
任何人都可以告诉我如何做这样的事情,例如,而不是“click
”,使用“onload
”或“load
”之类的东西?
$('.thumbnail_area').live("click",function(){
$(this).children().css('background-color', 'red')
});
我只是将它作为一个简单的例子。单击时这可以正常工作,但是每次加载div时我怎样才能做到这一点。最终目标是让它们一次淡出一个 感谢大家。
答案 0 :(得分:1)
实际上没有通用的onload()
jQuery函数。您必须使用AJAX请求的回调函数,如下所示:
jQuery.post(url,[data],[success(data,textStatus,jqXHR)],[dataType])
[ success(data, textStatus, jqXHR) ]
块表示你可以使用这些可选变量在那里放置一个函数,如下所示:
jQuery.post('foo.php', $('#foo_form').serialize(), function(data)
{
// I get called when the AJAX request finishes, so do your animating within me.
});
.getJSON()
的功能相同:
jQuery.getJSON('foo.php', 'foobar', function(data)
{
$('.thumbnail_area').css('background-color', 'red');
});
如果您使用的是jQuery(而不是jQuery UI),则需要包含一个颜色插件like this one,以便为元素的颜色设置动画。
答案 1 :(得分:0)
您已经有一个“结果”函数用作回调。难道你不能简单地“.hide()”div与id“id ='”+ result [i] .bridge +“'”然后使用fadeIn函数?像.append()函数之后的那样:
$('#'+result[i].bridge).hide();
$('#'+result[i].bridge).fadeIn();
哦,与jQuery的javascript无关,但你不应该使用数字作为ID,因为它会导致W3C验证错误。您可以将它们称为“id ='newdiv _”++ result [i] .bridge +“'”,然后通过拆分“_”char来获取id值。
var sId = $(somediv).attr('id');
var actualID = sId.split('_')[1];
答案 2 :(得分:0)
当我真的需要将所有更改放在getJSON文件中时。否则我正在进行的任何更改都会发生,但是当附加新的div时会立即更改。
再次感谢您的帮助。