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

时间:2015-06-20 19:10:18

标签: javascript jquery 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实际上已经填充了内容,但是我在计时器中得到全部为零。

2 个答案:

答案 0 :(得分:0)

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

类似的东西:

$(&#34;最亲近的元素&#34;)。on(&#34; event-that-want-you&#34;,&#34; element-loaded-through- ajax&#34;,function(e){ //听众代码在这里 })

这应该可以解决问题。

答案 1 :(得分:-2)

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

适用于初始document.ready

之后加载的元素