如何暂时取消绑定jquery.mousewheel

我正在制作一个基于同位素的页面.主显示屏水平滚动,我使用
jquery.mousehweel script进行默认的鼠标滚轮操作.我想在打开文章时将默认操作返回给用户,并阻止它水平滚动,但我无法弄清楚怎么做.

这是给出一个例子的jsfiddle链接:

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

当您单击一个框时,它会变得非常高,但如果您使用鼠标滚轮,它仍然会将页面左右滚动.我想让用户只在盒子高的时候垂直滚动.

谢谢你的帮助!

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

最佳答案 你必须取消绑定完全相同的功能.在您的代码中,您正在解除具有类似占用空间的不同功能.要使用完全相同的函数,首先定义它并将其存储为变量,然后在bind和unbind中使用对该变量的引用.有关您的小提琴的更新,请参阅
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(本文撰写时的最新版本)开始,事件绑定的首选方法是使用on和off,如下所示:

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

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

(请注意,您还可以将另一个参数传递给这些参数以进行事件委派.有关详细信息,请参阅the docs.

点赞