Oma*_*bid 5 javascript browser jquery events
我想在将函数绑定到它之前检查事件是否可用.问题是Google Chrome支持Video元素中的"loadedmetadata"事件,而FireFox则不支持.
我做了以下
$('video').bind('loadedmetadata', videoloaded);
videoloaded();
Run Code Online (Sandbox Code Playgroud)
它在Firefox中运行良好但是当我在Chrome中尝试时,该功能执行了两次(这是合乎逻辑的).我想检查是否loadedmetadata存在事件处理程序,以便在每个浏览器中只运行一次该函数.
如果不存在这种可能性,任何明智的工作都可以解决这个问题?
检查$video.data("events")此对象是否包含您的事件,因为您正在使用.bind此元素的所有事件将存储在此对象中.
var $video = $("#video");
var $ve = $video.data("events");
// checking if a `loadedmetadata` object exists in `data("events")`
if ($ve != null && typeof($ve.loadedmetadata) !== undefined)
{
// has loadedmetadata event
}
Run Code Online (Sandbox Code Playgroud)
关于jsFiddle的完整工作示例
| 归档时间: |
|
| 查看次数: |
12286 次 |
| 最近记录: |