我使用slimScroll jQuery plugin,似乎destroy选项并没有完全破坏网站上的插件效果。
例如,如果您尝试销毁插件然后滚动以前可滚动的内容,则网站滚动功能将停止工作。您可以使用滚动条滚动,而不是使用鼠标滚轮/触控板。
Here's a reproduction of the bug
请注意以下几点:
我已经reported it in the repository,但没有给出答案。它似乎被抛弃了。 我尝试了different solutions,但没有一个正常工作。
缺少一种破坏插件的正确方法似乎是问题......
jsfiddle中使用的代码:
$('.scrollable').slimScroll({
allowPageScroll: true,
height: '250px',
size: '10px',
alwaysVisible: true
});
$('.destroy').click(function(){
$('.scrollable').slimScroll({
destroy:true
});
});
答案 0 :(得分:8)
问题是插件没有删除已注册的事件。这应该可以解决问题:
$('.destroy').click(function(){
$('.scrollable').slimScroll({
destroy:true
});
var $elem = $('.scrollable'),
events = jQuery._data( $elem[0], "events" );
if (events) {
jQuery._removeData( $elem[0], "events" );
}
});