事件监听器导致Javascript函数错误
Javascript Function Error From Event Listeners
function start(){
var onChangeHandler = function() {
calculateAndDisplayRoute(directionsService, directionsDisplay);
};
document.getElementById('pac-input').addEventListener('change',onChangeHandler);
document.getElementById('pac-input2').addEventListener('change', onChangeHandler);
}
每次我改变第一个元素,我得到一个错误,因为我应该传递两个参数到'onChangeHandler'。是否有任何方法可以阻止我的代码产生此错误?一旦我改变了第二个元素,我的代码工作得很好,因为我将传递两个参数到'onChangeHandler'。
function start(){
var onChangeHandler = function() {
calculateAndDisplayRoute(directionsService = '', directionsDisplay = '');
};
document.getElementById('pac-input').addEventListener('change',onChangeHandler);
document.getElementById('pac-input2').addEventListener('change', onChangeHandler);
}
根据需要设置参数的默认值。
onChangeHandler
只接收来自浏览器的单个event
。要向它传递更多的东西,可以将它嵌套到一个匿名函数中:
function start(){
var onChangeHandler = function() {
calculateAndDisplayRoute(directionsService, directionsDisplay);
};
document.getElementById('pac-input').addEventListener('change',function(e){
// I do not know what things you want to pass, but it makes no difference for the purposes of this example
onChangeHandler(e, {});
}, false);
document.getElementById('pac-input2').addEventListener('change', function(e){
onChangeHandler(e, {});
});
}
你为什么要嵌套onChangeHandler
?为什么不直接调用里面的函数呢?它看起来是这样的,并且会去掉中间的人:
document.getElementById('pac-input2').addEventListener('change', function(e){
calculateAndDisplayRoute(e, {});
});
相关文章:
- Node.js v6.2.0类扩展不是函数错误
- Javascript搜索函数错误
- Chrome Javascript日期构造函数错误
- 浏览器中出现javascript初始大写函数错误
- Createjs冲突问题localToLocal不是函数错误
- Java脚本函数错误
- 更新带有Javascript函数错误的变量
- 如何将对象插入对象列表的开头,当它有 unshift 不是函数错误
- 在将 Pickadate 与 Meteor 一起使用时,未定义不是函数错误
- 运行咕噜咕噜咕噜抛出 _.object 不是函数错误
- 了解函数(错误、数据)回调
- javascript中的typeof()函数错误
- 我一直在获取angularjs服务不是函数错误(LoginService.login不是函数)
- HTML5拖拽&drop正在抛出undefined不是函数错误
- Google Maps API a.lat不是函数错误
- getItemAtIndex不是函数错误
- Javascript停止函数错误
- 对话框函数错误无效函数
- Javascript 自定义函数错误
- 因果报应单元测试'未定义'不是函数错误