Javascript jQuery Ajax.ajaxSuccess()事件未触发
我有一个本机javascript对象,我想将.ajaxSuccess回调分配给它。这是因为我希望在ajax调用成功后更新数据模型,但我不希望使数据模型成为整个javascript文件的全局模型。是的,我检查以确保在脚本文件之前包含jQuery 代码如下:Javascript jQuery Ajax.ajaxSuccess()事件未触发,javascript,javascript-events,jquery,Javascript,Javascript Events,Jquery,我有一个本机javascript对象,我想将.ajaxSuccess回调分配给它。这是因为我希望在ajax调用成功后更新数据模型,但我不希望使数据模型成为整个javascript文件的全局模型。是的,我检查以确保在脚本文件之前包含jQuery 代码如下: $("#formButtonAddLink").click(function() { $.ajax({ type: "POST", url: "ajax/addlink", data: {
$("#formButtonAddLink").click(function() {
$.ajax({
type: "POST",
url: "ajax/addlink",
data: {content: $("#formInputLinkContent").val(), subject: $("#formInputLinkSubject").val()},
dataType: "json",
error: function() {
alert("An ajax error occured adding link")
}
});
return false; //prevents html form submit
})
$(document).ready(function(){
var links = new Links(20,0);
$(links).ajaxSuccess(function() {
console.log("Hey.") //This does not work.
});
$(document).ajaxSuccess(function() {
console.log("Document hey.") //This shows up.
});
});
ajaxSuccess()
的基本思想是:
只要Ajax请求成功完成,jQuery就会触发
ajaxSuccess事件。已向注册的任何和所有处理程序
此时将执行.ajaxSuccess()方法
据我从中了解,您只能将ajaxSuccess()
事件处理程序附加到元素,而不是JavaScript对象。这就是为什么它在将事件处理程序附加到文档时起作用
我们可以将事件处理程序附加到任何元素
在这种情况下,如果您有以下类似情况:
<div class="links"></div>
这是完全无效的。你想要的结果到底是什么?如果我没记错的话,调用ajaxSuccess
的jquery对象没有实际效果,那么为什么不直接使用document
或其他任何东西呢。@JamesMontagne哪些部分无效?所需的结果是my links对象接收.ajaxSuccess回调。实际上,它将做一些比console.log更有用的事情。我希望我的links对象在ajax调用后更新自己,这就是为什么我不能使用任何ol'DOM对象。您调用的对象没有“接收”任何内容。如果您想在回调中使用links
变量,您可以这样做。因此说“jQuery(object),object:A plain object to wrapp in A jQuery object”的api在这种情况下不起作用?更新了我的注释。请参阅链接。但是你对ajaxSuccess的整体理解似乎是不正确的。好吧,这是有道理的。我希望将回调绑定到对象本身,但我想这是不可能的。所以我将它绑定到一个相关的元素,然后从那里处理事情。谢谢从jQuery1.9开始,jQuery全局Ajax事件的所有处理程序,包括使用.ajaxSuccess()方法添加的处理程序,都必须附加到文档中。
$(document).ready(function(){
$(".links").ajaxSuccess(function() {
console.log("Hey.")
// use links in here:
var links = new Links(20,0);
});
});