2010-10-24 101 views
0

我试图做一个“更多”10个新闻主题的帖子后。jQuery:问题与功能附加文字

对于这些新闻主题,有一些功能,你可以点击评论,然后出现和你评论,而无需转到另一个页面(AJAX调用)和其他一些这样的。这在前10个帖子中工作正常。

现在,当您在这10个新闻主题的底部点击更多,您将获得10个其他人。此处使用Ajax调用,并在第一个10之后附加。 这工作得很好。

但是不工作(我的问题是,那些点击功能我:

$('.reply').click(function() { 
    $('#replyWall'+$(this).attr('data-id')).toggle(); 
    document.getElementById('replyMsg'+$(this).attr('data-id')).focus(); 
}); 

$('.writeSComment').click(function() { 
    $(this).hide(); 
    $('#replyToSComment'+$(this).attr('data-id')).toggle(); 
    document.getElementById('commentStatus'+$(this).attr('data-id')).focus(); 
}); 

不行的也许就是这一点,因为附加的网站加载之后来临的时候,因为你第一次。点击“更多”,所以它找不到任何与该ID有此事件点击

但在这附加,有这些id's,和所有,所以有什么办法来获得这些功能与附加的东西一起工作,或者我该怎么做?

$('.more').live("click",function() { 
    var ID = $(this).attr("id"); 
    if(ID) { 
     $("#more"+ID).html('<img src="moreajax.gif" />'); 
     $.ajax({ 
      type: "POST", 
      url:  "misc/moreactivities.php", 
      data: "lastmsg="+ ID, 
      cache: false, 
      success: function(html) { 
       $("#profileWall").append(html); 
       $("#more"+ID).remove(); 
      } 
     }); 
    } 
}); 
+2

这里没有代码,做任何追加。你为什么将jQuery和getElementById混合? – 2010-10-24 15:33:25

+0

对不起更新的问题。 – Johnson 2010-10-24 15:35:57

回答

1

,你只是影响当前存在的DOM中的元素。这就是.click,这是.bind('click', function() { ... });的别名。

将事件绑定到所有匹配元素和选择匹配其新创建的元素,你需要使用.live

$('.reply').live('click', function() { 
    // ... 
}); 
0

为什么在jQuery中使用原生JS函数?

document.getElementById('commentStatus'+$(this).attr('data-id')).focus(); 

此外,如果您创建“空气”的元素使用实时事件

$('.writeSComment').click(function() { 

重视

$('.writeSComment').live("click", function() { 

它会影响到每一个元素,不要紧,如果它是加载dom或更高版本。

//对不起,当你的事件绑定到一组选定的元素,我还在写在海报编