仅将jquery函数应用于当前div

时间:2014-10-23 13:37:31

标签: jquery scrollbar jscrollpane

我找到了执行我需要的jquery代码 - 水平滚动div。

所以我有几个div,每个都包含滚动窗格滚动,而我想要实现的是在用户点击它时让div滚动。这是我目前的代码:

    $(document).ready(function() {

        $('.section').click(function(event) {    

            $('.section').css('border', '1px solid #dfdfdf');
            $('.section').find('.jspDrag').css('display', 'none');
            $('.section').removeClass('active');            
            $(this).addClass('active');

            if ($('.section').hasClass('active')) {

            $(this).find('.scroll-pane').each(function() {

                var scrollPane = $(this).jScrollPane();
                var api = scrollPane.data('jsp'); 

                scrollPane.bind( 
                    'mousewheel',
                    function (event, delta, deltaX) 
                    { 
                        api.scrollByX(delta*-50);
                        return false;
                    }); 
            });    
        };

            $(this).css('border', '1px solid #4ea0dc');
            $(this).find('.jspDrag').css('display', 'initial');
            event.stopPropagation();    
        });

        $('body').on('click', function(event) {    

            $('.section').css('border', '1px solid #dfdfdf');
            $('.section').removeClass('active');
            $(this).find('.scroll-pane').css('display', 'block');
            $(this).find('.jspDrag').css('display', 'none');

        });
    });

找到的jquery脚本放在hasClass('active')部分之后。

代码工作几乎完美,除了点击anoter div后,虽然滚动条从前一个消失,但用户仍然可以滚动它(以及当前选中的)。在点击每个其他div时,用户可以在将鼠标悬停在它们上时滚动所有先前选择的div。这不是我需要的,我只希望当前选择的div可以滚动。添加课程' active'如果它使代码更轻,则不是必需的。

我怀疑它可能与.each()部分有关,但无法弄清楚如何修复它。

任何人都可以帮忙吗?

0 个答案:

没有答案