如何在页面加载时影响jQuery .live元素上的css样式

时间:2011-03-27 02:32:18

标签: jquery json jquery-selectors event-handling pageload

嘿大家好 由于json/ajax调用,我在页面上创建了一些div。起初他们不会触发jQuery函数,然后我学会了解决我问题的.live()

但现在我想在每次页面加载时做一点动画。 (或改变,因为我通过json做它) 任何人都可以告诉我如何做这样的事情,例如,而不是“click”,使用“onload”或“load”之类的东西?

$('.thumbnail_area').live("click",function(){
    $(this).children().css('background-color', 'red')
});

我只是将它作为一个简单的例子。单击时这可以正常工作,但是每次加载div时我怎样才能做到这一点。最终目标是让它们一次淡出一个 感谢大家。

3 个答案:

答案 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)

嘿大家好非常感谢你们的帮助。我意识到现在我的整个事情都是错误的。我动态创建并附加div,然后尝试影响他们的CSS。

当我真的需要将所有更改放在getJSON文件中时。否则我正在进行的任何更改都会发生,但是当附加新的div时会立即更改。

再次感谢您的帮助。