0

我有以下代码:

 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);

如果我不想复制所有这些代码,我该怎么办?反正有做类似的事情document.getElementsById(var1, var2)吗?(注:dragArea = 'id1'dragAreaMobi = 'id2')。

我尝试使用 jQuery:

 $(this.config.dragArea).bind("dragover", function(e){ e.stopPropagation(); e.preventDefault(); }, false);

这段代码不起作用 - 我最好的猜测是和之间的区别bind......addEventListner在这种情况下,dragArea 被定义为dragArea = '#id1, #id2'

4

1 回答 1

0

创建一个函数并将元素传递给函数

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));
于 2013-07-30T08:42:23.510 回答