如何暂时解除jquery.mousewheel的绑定

发布于 2025-01-07 07:25:33 字数 521 浏览 1 评论 0原文

我正在制作一个基于同位素的页面。主显示屏水平滚动,我使用 jquery.mousehweel 脚本。我想在打开文章时将默认操作返回给用户,并阻止其水平滚动,但我不知道该怎么做。

是给出示例的 jsfiddle 链接:

http://jsfiddle.net/DJVX2/529/

这 您单击一个框,它会变得非常高,但是如果您使用鼠标滚轮,它仍然会左右滚动页面。我想让用户仅在盒子很高时垂直滚动。

感谢您的帮助!

注意:如果您的鼠标不在#container div 上,您就已经可以使用鼠标水平滚动。问题是当鼠标悬停在包含所有框的 #makeMeScrollable div 上时

I am making a page based on isotope. The main display scrolls horizontally, and I've taken the default mousewheel action using the jquery.mousehweel script. I want to give the default action back to the user when an article is opened, and stop it from scrolling horizontally, but I can't figure out how to do it.

Here's the jsfiddle link that gives an example:

http://jsfiddle.net/DJVX2/529/

When you click a box, it gets very tall, but if you use the mousewheel it still scrolls the page side to side. I'd like to let the user scroll vertically only while the box is tall.

Thanks for any help!

note: if your mouse is not over the #container div, you will already be able to use the mouse to scroll horizontally. The problem is when the mouse is over the #makeMeScrollable div that contains all the boxes

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

药祭#氼 2025-01-14 07:25:33

您必须取消绑定完全相同的功能。在您的代码中,您正在解除绑定具有相似足迹的不同函数。要使用完全相同的函数,请首先定义它并将其存储为变量,然后在 bindunbind 中使用对该变量的引用。请参阅 http://jsfiddle.net/DJVX2/530/ 以获取显示此工作的小提琴更新在你的背景下。基本思想是这样的:

// Define the callback
var callback = function(ev) { ... };

// Bind the callback
$(selector).bind('event', callback);

// Unbind the callback
$(selector).unbind('event', callback);

从 jQuery 1.7(撰写本文时的最新版本)开始,事件绑定的首选方法是使用 onoff ,如下所示:

// Bind the callback
$(selector).on('event', callback);

// Unbind the callback
$(selector).off('event', callback);

(请注意,您还可以向它们传递另一个参数来执行事件委托。有关更多信息,请参阅文档细节。

You have to unbind the exact same function. In your code, you are unbinding a different function with a similar footprint. To use the exact same function, define it first and store it a variable, and then use a reference to that variable in both the bind and the unbind. See http://jsfiddle.net/DJVX2/530/ for an update to your fiddle showing this working in your context. The basic idea is this:

// Define the callback
var callback = function(ev) { ... };

// Bind the callback
$(selector).bind('event', callback);

// Unbind the callback
$(selector).unbind('event', callback);

As of jQuery 1.7 (the newest version at the time of this writing), the preferred method of event binding is to use on and off like this:

// Bind the callback
$(selector).on('event', callback);

// Unbind the callback
$(selector).off('event', callback);

(Note that you can also pass another argument to these to do event delegation. See the docs for more details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文