2011-03-27 56 views
0

嘿,大家好。 由于拨打json/ajax,我在页面上创建了一些div。起初,他们不会触发jQuery的功能,然后我知道了.live()这解决了我的问题。如何在页面加载时对jQuery.live元素产生影响css样式

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

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

我只是用这个作为一个简单的例子。点击时可以正常工作,但是如何在每次加载div时执行此操作。最终目标是让它们一次褪色。
谢谢大家。

回答

1

实际上并没有一个通用的onload() jQuery函数。你将不得不使用回调函数的AJAX请求,你可以在这里看到:

jQuery.post(网址,[数据],[成功(资料,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()功能同一个W AY:

jQuery.getJSON('foo.php', 'foobar', function(data) 
{ 
    $('.thumbnail_area').css('background-color', 'red'); 
}); 

如果您使用jQuery(而不是jQuery UI的),你需要包括彩色插件,like this one,以动画元素的颜色。

+0

嘿家伙感谢回来这么快。也许我不应该说我正在使用Ajax。我使用getJSON,所以这可能会产生巨大的差异。继承人该网站即时通讯工作。 – NickG77 2011-03-27 02:48:05

+0

该死的你该如何在这个该死的东西里换个新的路线?继承人该网站即时通讯工作。 http://www.webnamehere.com/johns_site/home.php。让我们说负载我想所有的拇指背景改变红色。现在它只在点击时才起作用。此外,如果这有帮助,在页面的开始,大拇指用php生成,然后点击菜单按钮后,它通过jetJSON。这就是为什么我需要.live()。 – NickG77 2011-03-27 02:55:47

+0

你不能在评论中使用换行符。如果你这样做,系统会删除它们。不管怎样,看我的编辑。 – Blender 2011-03-27 14:15:33

0

您已经有一个“结果”函数用作回调函数。难道你不能简单地“.hide()”ID为“ID ='”+结果[i] .bridge +“'”的div,然后使用fadeIn函数吗?有点像.append()函数后右:

 $('#'+result[i].bridge).hide(); 
     $('#'+result[i].bridge).fadeIn(); 

哦,无关的jQuery JavaScript,但因为它引起W3C验证错误,你不应该使用数字作为标识。你可以称它们为“id ='newdiv _”++ result [i] .bridge +“'”,然后通过分割“_”字符来获得id值。

var sId = $(somediv).attr('id'); 
var actualID = sId.split('_')[1]; 
+0

嘿大家。非常感谢你们的帮助。我意识到现在我正在以错误的方式处理整个事情。我是动态创建和附加div,然后试图影响他们的CSS后。 当我真的需要把所有的改变放在getJSON文件中。否则,我正在做的任何改变都会发生,但是当新的div被追加时立即改回。 再次感谢您的帮助。 – NickG77 2011-03-28 15:42:24

0

嘿大家。非常感谢你们的帮助。我意识到现在我正在以错误的方式处理整个事情。我是动态创建和附加div,然后试图影响他们的CSS后。

当我真的需要把所有的改变放在getJSON文件中。否则,我正在做的任何改变都会发生,但是当新的div被追加时立即改回。

再次感谢您的帮助。

相关问题