我正在为我的html中的<select>
标签分配'onchange'属性。我已经成功地在我的main.js文件(它捆绑到bundle.js)中完成了。我的bundle.js然后在index.html中引用。onchange()函数没有定义(从index.html无法访问?)
每当onchange事件试图使用我已经定义 filterChanged()
的功能,它提供了一个参考误差:
我原先认为可能是由于功能“filterChanged不是在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>
['阅读进度()'](https://开头developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener) – Andreas