我遵循了一個關於使用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