多个滚动事件定义,以及歧视性事件解除绑定
Multiple scroll event definition, and discriminatory event unbinding
我问了一个关于jquery滚动事件的特定问题,但似乎答案可能对一般的jquery事件有影响(我也有兴趣知道)。
假设jquery插件A
(例如,jquery.scrollspy.js)绑定一个滚动事件到$(window)
现在说一些网站导入插件A
,但它也有自己的自定义javascript文件B
,它绑定另一个.scroll()
事件到$(window)
。
后来,javascript文件B
想要解除绑定自己的滚动事件,并留下jquery插件A
完好无损。这是如何做到的呢?
和
这个方法是通用的所有jquery事件吗?
jQuery建议使用on和off来代替bind和unbind。
function scrollEvent()
{
}
$(window).on('scroll',scrollEvent);
$(window).off('scroll',scrollEvent);
http://api.jquery.com/on/最好使用jQuery的。on()和。off()方法,而不是。bind()和。unbind()。
从jQuery 1.7开始,.on()方法是将事件处理程序附加到文档的首选方法。
您还可以通过在事件名称中添加自定义后缀来命名事件。然后,您可以稍后访问该特定事件(例如取消绑定)…
$(window).on('scroll.myscroll', function () {
// do something on scroll event
});
一个坑…
$(window).off('scroll.myscroll'); // unbind my namespaced scroll event
见https://css-tricks.com/namespaced-events-jquery/
这很简单。在问问题之前没有做足够的调查:
var fileBScrollEvent = function() {
// do something on scroll event
}
$(window).bind('scroll',fileBScrollEvent);
…后面的代码中…
$(window).unbind('scroll',fileBScrollEvent);
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- $window.ga在AngularJS事件中未定义
- cron作业与Javascript计时事件
- 多个滚动事件定义,以及歧视性事件解除绑定