jQuery多点击事件附加到Body元素(AJAX加载的内容)


jQuery Multiple Click Events Attached to Body Element (AJAX-loaded content)

我使用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.stopPropogatione.stopImmediatePropogation,因为我想我以前也在类似的情况下使用过它们,但我不太确定。

提前感谢您的建议!

在完成对服务器的请求后,尝试将事件绑定到ajax的success()函数中的元素。

AJAX

        $.ajax({
            url : 'process.php',
            data: { ... },
            success : function(data) {
                document.getElementById("my-element").innerHTML = data;
                $('#loaded-element').bind('click', function(){
                    ...
                });
            }
        });