我正在为我的 javascript 代码使用命名空间,并且我认为我已经为 select 元素使用了onchange属性。当我尝试使用(或不使用)我的命名空间调用函数时,错误控制台报告未找到该函数。
var MYNS = {}; //namespace
MYNS.modifySearchPage = function () {
....
var eSelect = document.createElement("select")
.....
eSelect.setAttribute('onchange', 'MYNS.handleChange(this)');
.....
//set up the options (value, textcontent, eSelect.appendChild(theOption)
...
// add the eSelect to the DOM
}
MYNS.handleChange = function (select) {
//parse the select options
}
当我从下拉列表中选择一个项目时,我在控制台中得到的结果是:
Uncaught ReferenceError: MYNS is not defined
我试图将命名空间添加到窗口,但这似乎没有帮助(而且我不相信这样做是安全的)。
我尝试将 onclick 处理程序添加到select元素,但显然这是一个坏主意,因为select不处理 onclicks。
从调用和函数定义中剥离 MYNS 也无济于事。
有任何想法吗?
谢谢, mwolfe