我使用PHP访问Twitter API和AJAX请求,以执行操作,而无需刷新页面。
在我当前的设置中,当页面第一次加载时,它是空白的。使用jQuery,在document.ready()
上,我执行一个AJAX请求,该请求指向一个PHP页面,该页面获取时间线,在字符串中构建HTML结构,并将其返回给AJAX成功函数。然后,我将其附加到一个div中,该div呈现为HTML。
我遇到的问题是,因为我有太多动态生成的内容,所以我在jQuery中的点击事件相互覆盖。我有几个.on("click")
事件附加到body
元素(因为它们在document.ready()
上不存在)。
$('body').unbind('click').on('click', '.element', function(e){...}
这样做的结果是,代码中最下面的事件侦听器可以工作,但上面的其他侦听器不能工作。我该如何解决这个问题?我的第一个想法是e.stopPropogation
或e.stopImmediatePropogation
,因为我想我以前也在类似的情况下使用过它们,但我不太确定。
提前感谢您的建议!
在完成对服务器的请求后,尝试将事件绑定到ajax的success()函数中的元素。
AJAX
$.ajax({
url : 'process.php',
data: { ... },
success : function(data) {
document.getElementById("my-element").innerHTML = data;
$('#loaded-element').bind('click', function(){
...
});
}
});