jquery惰性加载和其他jquery/javascript函数;追加后无法工作

jquery lazy load and other Jquery / javascript functions don't work after append

本文关键字:jquery 追加 工作 函数 javascript 加载 其他      更新时间:2023-12-16

我正在尝试创建一个页面,用户可以在其中查看图片并喜欢或不喜欢它们。为了方便用户,我创建了一个函数,当用户单击"加载更多帖子"时,jquery将从服务器获取数据。。我使用了append,但附加文件中的javascript函数不起作用(函数类似于懒惰加载、喜欢和不喜欢)。这里是我的代码示例。

<div id='updatepost' class='col-md-12'></div>
<div class='col-md-12'>
<button class='btn btn-default' id='loadmore'>Load more post</button>
</div>
<script>
pages1 = 5;
pages2 = 10;
$("#loadmore").on("click", function(event) {
event.preventDefault();
loadData = 'pages1=' + pages1 + '&pages2=' + pages2;
    $.ajax({
    type: "GET",
    url: "loadpost.php",
    data: loadData,
    cache: false,
    success: function(html) {
    $("div#updatepost").prepend(html);
    }
    });
});
</script>
<script type='text/javascript' src='js/loadpost.js'></script>
and here's the loadpost.php and javascript functionsfor likepost, dislikepost and lazy load don't work anymore.
<img data-original='upload-image/uploads/myiamge.jpg'  class='lazy'>
<span class='likepost'>like</span>
<span class='dislikepost'>dislike</span>

使用惰性加载程序,它支持自动初始化/自初始化。

否则,您需要在附加后调用初始化代码:

$("div#updatepost").prepend(html).find('img.lazyload').lazyload();

但如果你使用了大量的AJAX,我真的建议你使用上面链接的lazySizes脚本。普通的jQueryLazylod会在AJAX密集的网站上产生内存泄漏。

对于您喜欢/不喜欢的功能,您可以使用事件委派:

$('#updatepost').on('click, '.likepost', function(){
    //you like code
});