[英]jQuery on scroll listener after click event
在单击事件后激活滚动侦听器的正确方法是什么?
我目前正在使用:
$('.button').click(function (event) {
$(window).on("scroll", someFunction);
}
someFunction = function() {
//do stuff
$(window).off("scroll"); //disable scroll listener
}
在单击事件上,我启用了运行someFunction的滚动侦听器。 该函数完成后填充并禁用滚动侦听器。 单击时再次启用滚动侦听器。
我担心的是我做得不对。 请指教!
注意:滚动侦听器无法无限期运行。 它从点击开始,必须在myFunction结束时完成。
注意:我不会尝试检测用户何时停止滚动..
你可以使用jQuery .one() :
$('.button').on('click', function() {
$(window).one('scroll', someFunction);
});
每次单击都会添加一个额外的滚动事件侦听器。 我会用另外一个变量封装绑定:
var isScrollBindingActive = false;
$('.button').click(function (event) {
if (!isScrollBindingActive) {
isScrollBindingActive = true;
$(window).on("scroll", someFunction);
}
}
someFunction = function() {
//do stuff
$(window).off("scroll"); //disable scroll listener
isScrollBindingActive = false; // allow binding again if wished
}
您可以通过以下方式执行此操作:
$('.button').click(function (event) {
$(window).bind("scroll", someFunction);
}
someFunction = function() {
//do stuff
$(window).unbind("scroll"); // remove scroll listener
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.