我正在制作一个基于同位素的页面。主显示屏水平滚动,我使用jquery.mousehweel script进行默认鼠标滚轮操作。我想在打开文章时将默认操作返回给用户,并阻止它水平滚动,但我无法弄清楚如何操作。
以下是给出示例的jsfiddle链接:
http://jsfiddle.net/DJVX2/529/
当您单击一个框时,它会变得非常高,但是如果您使用鼠标滚轮,它仍会将页面左右滚动。我想让用户只在盒子高的时候垂直滚动。
感谢您的帮助!
注意:如果您的鼠标不在#container div上,您就可以使用鼠标水平滚动。问题是当鼠标位于包含所有框
的#makeMeScrollable div之上时答案 0 :(得分:2)
你必须取消绑定完全相同的功能。在您的代码中,您正在解除具有类似占用空间的不同功能。要使用完全相同的函数,首先定义它并将其存储为变量,然后在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。