jquery和ajax问题

时间:2010-12-19 06:03:33

标签: ajax jquery

我正在使用jquery和ajax。

我有一些div有id =“apple-23”,id =“apple-45”和...

我有一些像这样的jquery代码:

 $("[id^=apple]").click(function(){
     elid = $(this).attr('id').split("-");
     pid = elid[1];
     alert(pid);
 });

这些代码适用于这些div。

但是ajax也会返回类似的id,类似id =“apple-61”等id模式。 但jquery代码不适用于这些ajax生成的div。

为什么会这样?我该如何解决呢?

2 个答案:

答案 0 :(得分:5)

问题是您在元素存在之前绑定事件。

使用live代替(假设您使用的是jQuery 1.3 +):

$("[id^=apple]").live("click", function(){
     elid = $(this).attr('id').split("-");
     pid = elid[1];
     alert(pid);
 });

答案 1 :(得分:3)

您可以使用.delegate().live()来处理尚不存在的元素上的事件。

如果这些div有一个共同的父级,那么使用.delegate()而不是.live()会更有效率(请参阅here)。

$("#divContainer").delegate("[id^=apple]", "click", function(){
     elid = $(this).attr('id').split("-");
     pid = elid[1];
     alert(pid);
});