【问题标题】:Bind mousemove to mousedown event (jQuery)将 mousemove 绑定到 mousedown 事件 (jQuery)
【发布时间】:2010-12-28 15:34:06
【问题描述】:

我正在创建一个水平滚动站点。不要恨!一切似乎都工作正常,除了当我在 mousedown 上绑定 mousemove 事件时,dom scrollLeft 属性没有改变。 'moving' 和 'mouseup' 都在适当的时候被写入控制台。这是我的代码... 编辑:另外,我注意到如果我在 mousedown 上将 $('#container').scrollLeft 写入控制台,它会返回 'function()' 而不是一个值。

$(document).ready(function() {
    $('#container').mousedown(function(event) {
        $(this)
            .data('down',true)
            .data('x',event.pageX)
            .data('scrollLeft',this.scrollLeft)
            .css({'cursor':'url("http://www.loodieloodieloodie.com/images/closedhand.cur"),auto'});
        $('body').bind('mousemove',function(event) {
            console.log('moving');
            $('#container').scrollLeft = $('#container').data('scrollLeft') + ($('#container').data('x') - event.pageX) * 2;
        }).bind('mouseup',function() {
            $('#container')
                .data('down',false)
                .css({'cursor':'url("http://www.loodieloodieloodie.com/images/openhand.cur"),auto'});
            console.log('mouseup');
            $(this).unbind('mousemove');
        });
        return false;
    }).css({
        'overflow':'hidden',
        'cursor':'url("http://www.loodieloodieloodie.com/images/openhand.cur"),auto'
    });
});

这是基本的html...

<body>
    <div id="container">
        <div id="inner">
            CONTENT
        </div>
    </div>
</body>

感谢您的帮助, 乙

【问题讨论】:

    标签: jquery mousemove


    【解决方案1】:

    jQuery 对象上没有.scrollLeftproperty,所以用 tis 代替:

    $('#container').scrollLeft = $('#container').data('scrollLeft') + ($('#container').data('x') - event.pageX) * 2;
    

    你需要一个.scrollLeft() 函数这样的调用:

    $('#container').scrollLeft($('#container').data('scrollLeft') + ($('#container').data('x') - event.pageX) * 2);
    

    .css() 调用,如下所示:

    $('#container').css({ scrollLeft: $('#container').data('scrollLeft') + ($('#container').data('x') - event.pageX) * 2 });
    

    【讨论】:

    • 有一个 scrollLeft 属性...api.jquery.com/scrollLeft。我只是用错了
    • @user547071 - 有一个 scrollLeft 函数,是的,不是属性 :)
    • 啊,是的。你说得对。不过,你让我朝着正确的方向思考。感谢您的帮助尼克。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多