关于Uncaught TypeError: Illegal invocation这个错,很容易搜到是因为参数的原因。但是为什么在我使用LoadingOverlay插件之前就没有问题呢?
因为ajax使用的参数为使用LoadingOverlay的元素的data-*属性。在使用LoadingOverlay之后,用JQuery的data()方法获取到的属性多了loadingoverlay
前台将loadingoverlay也当参数了,所以要做的就是将这个属性过滤掉。可以这样
var data = $img.data();
var params = {};
for(var i in data) {
if (data[i] instanceof Object) {
continue;
}
params[i] = data[i];
}
但是千万不要直接delete,这会导致LoadingOverlay用不了
delete data[i]
这我也要记录吗,为了养成踩坑必记录的习惯,算了算了