访问嵌套事件绑定javascript中的对象
access object inside nested event binding javascript
Am正在尝试将音频回放事件绑定到音频结束的事件中。我无法访问我附加了音频结束事件的实际父对象。
var audio = new Audio('audiofile.mp3');
audio.addEventListener('ended', function() {
$("#replayButton").bind('click', function(){
audio.play(); //why i couldn't access the audio object
});
});
您可以在外部函数中绑定一个变量:
audio.addEventListener('ended', function() {
var self = this;
$("#replayButton").bind('click', function(){
self.play(); //why i couldn't access the audio object
});
});
但是,将事件处理程序绑定到另一个事件处理程序中通常不是一个好主意。当您回放音频时,当它结束时,您将绑定另一个单击处理程序。因此,如果用户再次点击重播按钮,它将开始播放两次。
.one()
方法可能更适合于此,因此click
处理程序在每次结束后只运行一次。所以应该是:
audio.addEventListener('ended', function() {
var self = this;
$("#replayButton").one('click', function(){
self.play(); //why i couldn't access the audio object
});
});
相关文章:
- 面向对象JavaScript中的私有函数
- 对象 Javascript 中的标签无效 - 想要添加事件列表器
- 将字符串转换为对象 javascript/jquery
- 正在检查对象javascript中是否存在嵌套属性
- 时间-日期对象JavaScript getUTCMilliseconds
- 仅在对象(javascript)中解析值
- 使用对象(JavaScript或jQuery)填充选择下拉列表
- 引用另一个对象javascript中的对象
- 如何删除列表中的对象?Javascript nodejs和下划线
- 无法从日期对象javascript获取日期和月份
- 如何在if语句中使用对象-Javascript
- 对象javascript错误
- 对象Javascript的少数实例
- 位置对象Javascript
- 将字符串传递到对象javascript中
- 获取对象Javascript或jQuery的最后一个值
- 鼠标接近对象Javascript
- 这个mixins代码是书中的错误吗;面向对象JavaScript的原理”;
- 使用闭包编译器编写更好的面向对象JavaScript完整示例代码
- 访问对象javascript数组中的对象属性值