首页 > 解决方案 > 不同对象上的事件监听器

问题描述

什么是编写此代码的更好方法,我觉得我应该能够以较少硬编码的方式引用目标。是否可以将实际对象添加到变量中,如果可以,我如何测试/验证添加事件的位置?

var o="window"; // or "document" or "body" or maybe some at the moment unknown elements id

if(o=="window"){
    window.addEventListener();
} 
else if(o=="document"){
    window.document.addEventListener();
}
else if(o=="body"){
    window.document.body.addEventListener();
}

标签: javascript

解决方案


你可以这样做

const elementX =
    { 'window'   : window
    , 'document' : window.document
    , 'body'     : window.document.body
    }

var o="window";

elementX[o].addEventListener( ... );

推荐阅读