使用LoadingOverlay插件后Uncaught TypeError Illegal invocation

349 阅读1分钟

关于Uncaught TypeError: Illegal invocation这个错,很容易搜到是因为参数的原因。但是为什么在我使用LoadingOverlay插件之前就没有问题呢?

因为ajax使用的参数为使用LoadingOverlay的元素的data-*属性。在使用LoadingOverlay之后,用JQuery的data()方法获取到的属性多了loadingoverlay

1.png

前台将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]

这我也要记录吗,为了养成踩坑必记录的习惯,算了算了