gpt4 book ai didi

javascript - 如何使用 jQuery 或 JS 检查事件处理程序是否存在?

转载 作者:搜寻专家 更新时间:2023-11-01 04:11:39 25 4
gpt4 key购买 nike

我想在绑定(bind)函数之前检查事件是否可用。问题是 Google Chrome 支持视频元素中的事件“loadedmetadata”,而 FireFox 不支持。

我做了以下

$('video').bind('loadedmetadata', videoloaded);
videoloaded();

它在 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
}

完整工作 example on jsFiddle

关于javascript - 如何使用 jQuery 或 JS 检查事件处理程序是否存在?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3898055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com