javascript - 如何保留通过 jQuery 中的 ajax 调用添加的事件元素 "active"

标签 javascript jquery event-handling jquery-events

我通过 ajax(post)请求将内容放置在我的页面上,如下所示:

$("input#ViewMore").click(function() {
            var data = { before: oldestDate, threadId: 1 };
            $.post("/Message/More", data,function(html) {
                $('tbody#posts').prepend(html);
                return false;
            },
            "html");
            return false;
        });

返回的 html 看起来像这样:

<div id="comment">Message output <a href="#" id="quote">Quote</a></div>

这一切工作正常,一切都按预期进行,没有问题。

当我有一个事件挂接到通过 ajax 调用添加的“quote” anchor 时,就会出现问题。具体来说,该 anchor 上的 jQuery 事件不会触发。为什么?

例如:

$("#quote).click(function() { ... });

什么也不做。表现得好像没有任何事件一样。我知道它正在页面上的其他 anchor 上工作,这些 anchor 不是通过 ajax 请求添加的,因此那里没有代码错误,而且如果我刷新页面,它将正确触发。发生这种情况是否有某种原因,我是否需要以某种方式重新初始化 anchor 标记上的该事件?有什么想法吗?

使用 jQuery 1.3.1(也不适用于 1.2.6),所以我相信这是我的实现而不是代码本身。

最佳答案

您可以使用Events/live从 jQuery 1.3 开始,live 会将处理程序绑定(bind)到所有当前和 future 匹配元素的事件。

关于javascript - 如何保留通过 jQuery 中的 ajax 调用添加的事件元素 "active",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/499085/

相关文章:

event-handling - $.event.trigger 未在非 DOM 对象中触发

javascript - 我想要第二次弹出时输入值不被清除

javascript - 让我的按钮类型 ="submit"打开另一个 Accordion

c# - 如何显示流返回的 pdf(在 JsonResult 中)?

java - 如何指定实现接口(interface)的引用方法参数

javascript - RethinkDB - 更新嵌套数组

javascript - 根据 Dialogflow Fulfillment 中的 API 调用结果填充意图

javascript - 在 React App 中阻止导航

javascript - 这个 discord.js 命令如何违反 if 语句?

jQuery .on 效率