为什么有时需要一个虚拟对象来存储事件(JavaScript)
我不明白为什么有时候你需要在JavaScript中有一个虚拟对象来存储evetns,比如下面的代码为什么有时需要一个虚拟对象来存储事件(JavaScript),javascript,javascript-events,Javascript,Javascript Events,我不明白为什么有时候你需要在JavaScript中有一个虚拟对象来存储evetns,比如下面的代码 Metal.Gold = function() { var temp = $("<div>"); //dummy object this.Submit = function(url1, method, data){ temp.trigger("Submit", data); //invoke trigger for dummy object?? $.
Metal.Gold = function() {
var temp = $("<div>"); //dummy object
this.Submit = function(url1, method, data){
temp.trigger("Submit", data); //invoke trigger for dummy object??
$.ajax({
url:url1,
data:JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType:"json",
success: function(data){
temp.trigger("SubmittSuccess", data); //????
//doSomething
},
error: function(error){
temp.trigger("SubmitFailure", error);// ???
}
});
}
}
我已搜索所有文件,但找不到任何名为SubmitQuantitySuccess的方法。我不知道数据或错误返回时发生在何处以及发生了什么。这并不是最好的方法。我从未见过这样的事,但我想它会有用的 您可能希望在Submit函数中返回
$.ajax
调用,该调用将返回一个jqXHR对象(延迟对象)
那么你可以做:
var myGold = new Metal.Gold();
myGold.Submit(arg1, arg2, arg3)
.done(function () { ... })
.fail(function () { ... });
关于jQuery的延迟对象的更多信息
和jQuery的jqXHR对象,因为它们希望发送事件,但不希望在全局范围内(即在文档上)发送事件。另外,这三次是因为发送的事件和数据不同。
Metal.Gold = function() {
this.Submit = function(url1, method, data){
return $.ajax({
url:url1,
data:JSON.stringify(data),
contentType: "application/json; charset=utf-8",
dataType:"json"
});
}
}
var myGold = new Metal.Gold();
myGold.Submit(arg1, arg2, arg3)
.done(function () { ... })
.fail(function () { ... });