Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在jQuery中保持通过ajax调用添加的事件元素;主动的;_Javascript_Jquery_Javascript Events_Event Handling - Fatal编程技术网

Javascript 如何在jQuery中保持通过ajax调用添加的事件元素;主动的;

Javascript 如何在jQuery中保持通过ajax调用添加的事件元素;主动的;,javascript,jquery,javascript-events,event-handling,Javascript,Jquery,Javascript Events,Event Handling,我通过ajax(post)请求在页面上放置内容,如下所示: $("input#ViewMore").click(function() { var data = { before: oldestDate, threadId: 1 }; $.post("/Message/More", data,function(html) { $('tbody#posts').prepend(html);

我通过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返回时看起来像:

消息输出引号 这一切都很好,一切都正常,没有问题

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

例如:

$("#quote).click(function() { ... });
什么也不做。表现得好像上面没有任何事件。我知道它正在处理页面上没有通过ajax请求添加的其他锚,因此那里没有代码错误,而且如果我刷新页面,它将正确触发。发生这种情况有什么原因吗?我是否需要某种方式重新初始化锚标记上的事件?有什么想法吗


使用jQuery 1.3.1(也不适用于1.2.6),因此我认为这是我的实现,而不是代码本身。

当使用Ajax将新内容添加到页面时,您必须将所有事件重新注册到这些新元素。

您可以使用jQuery 1.3,live将为所有当前和未来匹配的元素将处理程序绑定到事件

更改为

$('#quote').live("click", function() { ... } 


CMS的答案似乎不起作用,但结果如下:

查看更多按钮事件与添加它的AJAH请求之外的事件保持相同:

$("input#ViewMore").click( function() { ... }
使用live方法时,需要在AJAH请求中添加或从中添加事件的元素:

$('#quote').live("click", function() { ... }

工作起来很有魅力

我该怎么做呢?
$('#quote').live("click", function() { ... }