我刚接触使用带有React的ES6类,之前我已经将我的方法绑定到当前对象(在第一个示例中显示),但ES6是否允许我使用箭头将类函数永久绑定到类实例?(当作为回调函数传递时很有用.)当我尝试使用它时,我遇到错误,就像使用CoffeeScript一样:
class SomeClass extends React.Component {
// Instead of this
constructor(){
this.handleInputChange = this.handleInputChange.bind(this)
}
// Can I somehow do this? Am i just getting the syntax wrong?
handleInputChange (val) => {
console.log('selectionMade: ', val);
}
Run Code Online (Sandbox Code Playgroud)
因此,如果我要传递SomeClass.handleInputChange给setTimeout它,那么它将被限定为类实例,而不是window对象.
如何在HTML5视频上强制中止事件?我有一个叠加层,当我关闭它时,视频应暂停播放然后停止缓冲.但是,我的互联网连接仍然疯狂.哦,我在Mac OS X 10.6上使用Chrome 7.0.5.
我尝试了几件事 - 它们都没有奏效:
(对于那些不熟悉XUI的人来说,x $就像jQuery包装函数一样)
首先,调度中止HTML事件:
var videoEl = x$('#video_el')[0];
videoEl.pause();
var evObj = document.createEvent('HTMLEvents');
evObj.initEvent('abort', false, false);
videoEl.dispatchEvent(evObj);
Run Code Online (Sandbox Code Playgroud)
接下来,更改src然后强制加载:
var videoEl = x$('#video_el')[0];
videoEl.pause();
videoEl.src = "";
videoEl.load(); //tried with and without this step
Run Code Online (Sandbox Code Playgroud)
编辑:我的视频元素看起来像这样:
<video id="video_el" src="<video_url>" preload="none" controls="controls" />
Run Code Online (Sandbox Code Playgroud)
同样,这些都不起作用.以前有人遇到过这个问题吗?有什么建议?
总之,我试图强制HTML5视频元素停止缓冲.
谢谢!
我使用这个简单的代码处理HTML5音频标签:
HTML
<audio id="audioFrenata">
<source src="sounds/frenata.ogg">
<source src="sounds/frenata.mp3"></audio>
Run Code Online (Sandbox Code Playgroud)
JS
$('#audioFrenata').on('ended', function() {
manageImageObjectsLevel();
}).get(0).play();
Run Code Online (Sandbox Code Playgroud)
使用Chrome,这可以正常工作,Windows上的Safari 5.1.7和iPad 3上的Safari我收到:
'undefined' is not a function (evaluating '$('#audioFrenata').on('ended', function() {
manageImageObjectsLevel();
}).get(0).play()')
Run Code Online (Sandbox Code Playgroud)
任何人都知道为什么?
javascript ×2
babeljs ×1
ecmascript-6 ×1
html5 ×1
html5-audio ×1
jquery ×1
reactjs ×1
safari ×1
video ×1