我遵循了一个关于使用javascript制作文件上传器的教程,并且我将它运用了,所以我认为它会更好地作为jQuery插件,以便我可以在我的页面的不同元素上使用它。于是我开始将代码移植到我的插件中,并遇到了一个问题。为什么ondragover不能在jQuery插件中工作?
通常情况下,您可以使用jQuery和JavaScript,但出于某种原因,ondragover不能在我的插件中工作。
;(function($) {
"use strict";
$.fn.asiLoader = function() {
var base=$(this);
base.ondragover=function(){
alert('test');
return false;
}
return base;
}
})(jQuery);
我知道我可以使用
base.on("dragover", function(e) {
alert('test');
e.preventDefault();
e.stopPropagation();
});
代替,而工作,是jQuery的相当,但我想知道为什么JavaScript是不工作?
为什么要使用'base.ondragover'而不是'base.on(“dragover”)'? – gcampbell
自发布以来,我一直在将其更改为与其下面的代码相同的jQuery。我只是感到困惑,为什么JavaScript代码无法正常工作。如果我在我的插件外使用它,但它在我的插件中不起作用。为了进一步学习,我想了解为什么javascript在我的插件中不起作用。我可能会使用jQuery替代品,但我只是想知道为什么,通常可以混合使用jQuery和JavaScript代码。 –
最好使用'foo.on(“bar”)'(jQuery)或'foo.addEventListener(“bar”)'(原生JS)而不是'foo.onbar',因为您可以添加和删除多个侦听器。 – gcampbell