【发布时间】:2017-12-11 20:22:45
【问题描述】:
我正在为我的 html 中的 <select> 标记分配一个“onchange”属性。我在我的 main.js 文件(捆绑到 bundle.js 中)中成功地做到了这一点。然后在 index.html 中引用了我的 bundle.js。
每当 onchange 事件尝试使用我定义的函数时
filterChanged(),它提供了一个参考错误:“filterChanged is not defined
在 HTMLSelectElement.onchange"
我最初认为这可能是由于该函数不是全局变量,所以我分配给了 var 并且问题仍然存在。
见下方代码-
main.js
var filterChanged = function() {
console.log('filter changed');
}
window.onload = function() {
let filter = document.getElementById('filter-list');
filter.setAttribute('onchange', 'filterChanged()');
}
index.html
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>TestProj</title>
<script type="text/javascript" charset="UTF-8" src="build/bundle.js"></script>
</head>
<body>
<h3>Todos</h3>
<p>Number of items to show</p>
<select id="filter-list" name="filter">
<option selected="true" value="list10">10</option>
<option value="list20">20</option>
<option value="list30">30</option>
</select>
<ul id="todo_list">
<!-- Inject list here with JS (main.js getTodos()) -->
</ul>
</body>
</html>
【问题讨论】:
标签: javascript html dom webpack ecmascript-6