3

私はslimScroll jQuery プラグインを使用していますが、破棄オプションがサイトのプラグイン効果を完全に破棄していないようです。

たとえば、プラグインを破棄して、以前にスクロール可能だったコンテンツをスクロールしようとすると、サイトのスクロール機能が動作しなくなります。マウスホイール/トラックパッドを使用するのではなく、スクロールバーを使用してスクロールできるようになります。

バグの再現はこちら

いくつかのことに注意してください。

  • 以前にスクロール可能な要素をマウスホイール/トラックパッドでスクロールすると、スクロールがブロックされます。
  • 以前にスクロール可能な要素の外へのスクロールは、期待どおりに機能します。
  • 破壊する前にslimScrollを一番下までスクロールすると、破壊するときに、どのような場合でも正常に動作します。

すでにリポジトリで報告しましたが、回答はありません。それは一種の放棄されたようです。提案されたさまざまな解決策を試しましたが、どれも適切に機能しません。

プラグインを破壊する適切な方法がないことが問題のようです...

jsfiddle で使用されるコード:

$('.scrollable').slimScroll({
    allowPageScroll: true,
    height: '250px',
    size: '10px',
    alwaysVisible: true
});

$('.destroy').click(function(){
    $('.scrollable').slimScroll({
        destroy:true
    });
});
4

1 に答える 1

8

問題は、プラグインが登録されたイベントを削除していないことです。これで問題が解決するはずです:

$('.destroy').click(function(){
    $('.scrollable').slimScroll({
        destroy:true
    });

    var $elem = $('.scrollable'),
    events = jQuery._data( $elem[0], "events" );

    if (events) {
        jQuery._removeData( $elem[0], "events" );
    }

});
于 2014-11-10T12:51:35.287 に答える