【问题标题】:Video element prevent right click code does not work for dynamic elements.视频元素防止右键单击代码不适用于动态元素。
【发布时间】:2013-09-12 01:25:38
【问题描述】:

我有这段代码$('video').on('contextmenu', function(e) {e.preventDefault();}); 来防止视频标签上的右键菜单。但是,它似乎不适用于动态添加的视频。将ilightbox 用于灯箱,当单击其中一个灯箱图像时,它将视频元素添加到 dom。可以做些什么来让它与动态元素一起工作?

【问题讨论】:

  • 如果上下文菜单事件冒泡,使用委托...
  • $("video").on("contextmenu", function(){});相当于 $("video").bind("contextmenu", function(){})。如果此时 DOM 中不存在 video 标签,则不会将事件处理程序添加到该元素。

标签: javascript jquery html html5-video


【解决方案1】:

委托事件处理程序:

$(document).on('contextmenu', 'video', function(e) {
    e.preventDefault();
});

FIDDLE

【讨论】:

    【解决方案2】:

    首先尝试将事件委托给正文级别:

    $(document.body).on('contextmenu','video', function(e) {e.preventDefault();});
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-11
      • 2013-07-13
      • 1970-01-01
      • 1970-01-01
      • 2015-03-14
      • 1970-01-01
      • 2011-12-19
      • 2021-05-07
      相关资源
      最近更新 更多