MousemoveをMousedownイベントにバインドする(jquery)
質問
水平スクロールサイトを作成しています。嫌いではない! MousemoveイベントをMousedownでバインドする場合を除き、すべてが正常に機能しているようです。 「移動」と「MouseUp」はどちらも適切な時間にコンソールに書き込まれています。ここに私のコードがあります...編集:また、$( '#container')を書くと、値の代わりに「function()」を返すコンソールにscrollleftが表示されます。
$(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>
助けてくれてありがとう、b
解決
ありません .scrollLeft
財産 jqueryオブジェクトでは、tisの代わりに:
$('#container').scrollLeft = $('#container').data('scrollLeft') + ($('#container').data('x') - event.pageX) * 2;
あなたには必要だ .scrollLeft()
働き このように電話してください:
$('#container').scrollLeft($('#container').data('scrollLeft') + ($('#container').data('x') - event.pageX) * 2);
またはa .css()
このように電話してください:
$('#container').css({ scrollLeft: $('#container').data('scrollLeft') + ($('#container').data('x') - event.pageX) * 2 });
所属していません StackOverflow