[英]JavaScript: getElementById - avoiding code duplication
I've got the following code: 我有以下代码:
document.getElementById(this.config.dragArea).addEventListener("dragover",
function(e){ e.stopPropagation(); e.preventDefault(); }, false);
document.getElementById(this.config.dragArea).addEventListener("drop",
this._dropFiles, false);
//SAME CODE, DIFFERENT IDs
document.getElementById(this.config.dragAreaMobi).addEventListener("dragover",
function(e){ e.stopPropagation(); e.preventDefault(); }, false);
document.getElementById(this.config.dragAreaMobi).addEventListener("drop",
this._dropFiles, false);
If I didn't want to duplicate all this code, what could I do? 如果我不想重复所有这些代码,该怎么办? Is there anyway to do something like
document.getElementsById(var1, var2)
?? 无论如何有做类似
document.getElementsById(var1, var2)
事情吗? (NOTE: dragArea = 'id1'
and dragAreaMobi = 'id2'
). (注意:
dragArea = 'id1'
和dragAreaMobi = 'id2'
)。
I tried using jQuery with: 我尝试使用jQuery与:
$(this.config.dragArea).bind("dragover", function(e){ e.stopPropagation(); e.preventDefault(); }, false);
This code didn't work - my best guess is the difference between bind
and addEventListner
... In this instance dragArea was defined as dragArea = '#id1, #id2'
这段代码行不通-我的最佳猜测是
bind
和addEventListner
之间的区别...在这种情况下,dragArea被定义为dragArea = '#id1, #id2'
Create a function and pass the element to the function 创建一个函数并将元素传递给该函数
function bindEventListeners(elem){
elem.addEventListener("dragover", function(e){ e.stopPropagation(); e.preventDefault(); }, false);
elem.addEventListener("drop", this._dropFiles, false);
}
bindEventListeners(document.getElementById(this.config.dragArea));
bindEventListeners(document.getElementById(this.config.dragAreaMobi));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.