繁体   English   中英

Jquery 插件不适用于通过 Ajax 加载的元素

[英]Jquery plugin not working for elements loaded via Ajax

描述:我正在处理一个项目,该项目加载具有从我的数据库派生的到期日期的元素。 我正在使用一个 Jquery 插件,它使用 HTML5 数据类型属性作为“结束日期”。 当元素加载到 DOM 时一切正常,但我不知道如何让这个插件在通过 ajax 加载的元素上运行,这些元素从滚动函数触发。 诚然,Javascript 不是我的强项,我不是在寻找编码答案……我只是在寻找方向。 显然有些事情我根本不知道,或者我理解我的问题的方式已经关闭,因为 4 天的谷歌搜索和反复试验没有产生任何结果。 谢谢大家!

编辑:这是我试过的 -

1)一个ajax完整的功能——

$(document).ajaxComplete( function(){ $('.countdown').countdown(); });

2)添加在我的 php 结果中回显的脚本标记 -

<script>$('.countdown').countdown();</script>

3)将它添加到我的 .scroll 函数中 -

$(function() {
    $(window).scroll(function() {
        if($(window).scrollTop() + $(window).height() == $(document).height()) {
            if (is_loading == false) { // stop loading many times for the same page
                // set is_loading to true to refuse new loading
                is_loading = true;

                // display the waiting loader
                $('#loader').show(500);

                // execute an ajax query to load more statments
                $.ajax({
                    url: 'JSON-TEST/load_more.php',
                    type: 'POST',
                    data: {last_id:last_id},
                    success:function(data){
                        // now we have the response, so hide the loader
                        $('#loader').hide(500);
                        // append: add the new statments to the existing data
                        $('#content').append(data);
                        // set is_loading to false to accept new loading
                        is_loading = false;
                        $('.countdown').countdown();

                    }
                });

            }
       }
    });
});

三者都成功调用了脚本。 我可以说,因为那个 div 实际上填充了内容,但是我在计时器中得到了全零。

在事件委托表单中使用 .on 方法。 这基本上包括将事件的侦听委托给您尝试侦听的元素的最近父节点。 根据经验,总是将事件委托给 dom 中已经存在的最近的父级。 由于性能原因,不要一直到文档。

就像是:

$("closest-parent-of-the-element").on ("event-that-you-want", "element-loaded-through-ajax", function (e) { // 这里的监听器代码 })

这应该够了吧。

尝试使用实时: http : //api.jquery.com/live/

它适用于在初始 document.ready 之后加载的元素

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM