jQuery 在点击事件后滚动侦听器
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
}
在单击事件中,我启用 运行s someFunction 的滚动侦听器。该函数执行一些操作并在完成时禁用滚动侦听器。单击时再次启用滚动侦听器。
我担心的是我做得不对。请指教!
注意:滚动侦听器不能运行无限期。它从点击开始,必须在 myFunction 结束时结束。
注意:我并不是要检测用户何时停止滚动...
您可以通过以下方式进行:
$('.button').click(function (event) {
$(window).bind("scroll", someFunction);
}
someFunction = function() {
//do stuff
$(window).unbind("scroll"); // remove scroll listener
}
每次单击都会添加一个额外的滚动事件侦听器。我会用一个附加变量封装绑定:
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
}
你可以使用 jQuery .one():
$('.button').on('click', function() {
$(window).one('scroll', someFunction);
});
点击事件后激活滚动侦听器的正确方法是什么?
我目前正在使用:
$('.button').click(function (event) {
$(window).on("scroll", someFunction);
}
someFunction = function() {
//do stuff
$(window).off("scroll"); //disable scroll listener
}
在单击事件中,我启用 运行s someFunction 的滚动侦听器。该函数执行一些操作并在完成时禁用滚动侦听器。单击时再次启用滚动侦听器。
我担心的是我做得不对。请指教!
注意:滚动侦听器不能运行无限期。它从点击开始,必须在 myFunction 结束时结束。
注意:我并不是要检测用户何时停止滚动...
您可以通过以下方式进行:
$('.button').click(function (event) {
$(window).bind("scroll", someFunction);
}
someFunction = function() {
//do stuff
$(window).unbind("scroll"); // remove scroll listener
}
每次单击都会添加一个额外的滚动事件侦听器。我会用一个附加变量封装绑定:
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
}
你可以使用 jQuery .one():
$('.button').on('click', function() {
$(window).one('scroll', someFunction);
});