javascript - ajax注入(inject)的元素无法被选择

标签 javascript jquery ajax

我编写了使用 ajax 更新帖子的代码:

 $(function(){
   $('#loadFeed').bind('click',function(){ 
        $.getJSON('getData.php', function(json) {
            var output="<ul id='feedsList'>";

            for(var i=json.posts.length-1;i>=json.posts.length-31;i--){
                output+="<li class='post'>";
                output+="<div class='text'>"+json.posts[i].shortmsg+"</div>";         
                output+="</li>";
            }
            output+="</ul>"
            $(output).appendTo('.posts');
    });
  });
});

我的html代码:

<div data-role="content" class="ui-content" role="main">
        <div class="posts"></div>
 </div>

然后我想点击每个帖子,帖子会展开以显示更详细的内容。我该怎么做?我写的代码是:

$(function(){
     $('.text').bind('click',function(){
         $.getJSON('getData.php', function(json){   
         var thisID = this.id;      
         $(this).replaceWith("<div class='long_text'>"+json.posts[thisID].msg+"<div>"); 
         });
     });
});

但它没有做任何事情。我不确定是否

var thisID = this.id;

是否有效。我稍微改变了我的代码: $(function(){ $('.text').bind('click',function(){ alert("Hello!") }); });

仍然没有任何反应!我怀疑是否在函数中选择了.text。有人可以帮忙吗?谢谢!

最佳答案

您应该阅读有关 jQuery 的 .on()

假设您有一个存在于动态内容之前的容器,

<div class="posts">
    <!--dynamic content here-->
</div>

然后,将处理程序一次附加到现有容器,它将监听动态内容的事件

//"add listener for .text, attached on .post"
$('.posts').on('click','.text', function(){
    //do stuff when text is clicked    
});

关于javascript - ajax注入(inject)的元素无法被选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10647287/

相关文章:

javascript - 同步ajax : Guaranteed sequential?

javascript - 如何在不将 JavaScript 放在网站上的情况下对其进行测试?

javascript - 为什么 ES6 “get” 没有 “Set” 方法?

javascript - 在文本框 html 中插入值选择

javascript - 如何重新初始化 Bootstrap 日期选择器?

javascript - Backbone.Marionette.ItemView 渲染后元素未准备好?

php - Jquery ajax 无 PHP 响应

javascript - 使用jquery中的一个脚本创建cookie并使用另一个脚本yui/或任何东西访问相同的cookie

jquery - 单击图像时响应式菜单切换

javascript - 变量未传递给其他函数