[英]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.