jquery – 如果事件处理程序不存在,你怎么绑定?

前端之家收集整理的这篇文章主要介绍了jquery – 如果事件处理程序不存在,你怎么绑定?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个页面,我想绑定拖放事件。我希望浏览器中的整个页面成为放置目标,所以我将事件绑定到文档对象。我的应用程序的内容通过AJAX加载到主要内容区域,但是当上传页面当前可见时,我只希望这些事件处理程序处于活动状态。

现在,在检索上传页面时,我绑定了事件处理程序;然而,每当上传页面变为活动时,它绑定一个新的事件处理程序,当用户进入上传页面,离开并返回时,这会导致处理程序多次触发。我想我可以解决这个问题,如果我可以使处理程序绑定只有当它还没有绑定。这是可能的,还是我俯瞰更好的选择?

相关代码,如果有帮助:

$(document).bind('dragenter',function(e) {
    e.stopPropagation();
    e.preventDefault();
}).bind('dragover',function(e) {
    e.stopPropagation();
    e.preventDefault();
}).bind('drop',function(e) {
    e.stopPropagation();
    e.preventDefault();
    self._handleFileSelections(e.originalEvent.dataTransfer.files);
});

解决方法

在绑定新的事件处理程序之前解除绑定。这是非常简单的 namespaced events [docs]
$(document)
  .off('.upload') // remove all events in namespace upload
  .on({
      'dragenter.upload': function(e) {
          e.stopPropagation();
          e.preventDefault();
      },'dragover.upload': function(e) {
          e.stopPropagation();
          e.preventDefault();
      },// ...
  });
原文链接:https://www.f2er.com/jquery/182714.html

猜你在找的jQuery相关文章