我有一些代码看起来像这样(缩短):
$.ajax({
url: $form.attr('action'),
data: formData,
type: $form.find('input[name=_method]').val() || $form.attr('method') || 'POST'
}).done(function (data, textStatus, $xhr) {
var eventParams = {
xhr: $xhr,
validator: validator
};
$form.trigger($.Event('ajaxify-success',eventParams));
});
我这样使用它:
$('#label-form').on('ajaxify-success', function(ev) {
console.log(ev);
});
但是ev.data
始终是未定义
。如果我修改 eventParams
以将数据返回:
var eventParams = {
xhr: $xhr,
validator: validator,
data: data
};
它仍然不起作用。 jQuery 正在做一些事情来主动删除数据。为什么?我基本上想传播 ajax done 事件并添加我自己的几个额外属性。我怎样才能做到这一点而不丢失数据
?
最佳答案
您不能使用 data
作为任意事件参数,因为它由 jQuery 为 Event.data 保留。 .
参见Fiddle
关于jQuery.Event——我的数据在哪里?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30489526/