如果您构建一个简单的拖动器:
$(document).ready(function(){
$('#tomove').draggable({
axis: 'x',
drag: function(event, ui) {
mouseUp();
}
});
});
你试图以编程方式停止它:
function mouseUp() {
if($('#tomove').offset().left > 400) {
$('#tomove').trigger('mouseup');
}
}
您将在错误控制台中收到此消息:
this.helper为空
有什么方法可以解决这个问题吗? 谢谢你的帮助。
答案 0 :(得分:0)
看起来你只是试图限制可拖动元素上的移动,这是正确的吗?您是否看过此页面:http://jqueryui.com/demos/draggable/#constrain-movement
修改强>
然后呢:(示例页面,做你要问的 - 注意jquery包含位置)
另请注意,我将方法的名称更改为更合适的内容。这不会阻止用户向左拖动。如果他们达到400(或其他墙壁),我认为你不想实际阻止它们。
如果你想这样做,你只需要$('#element').draggable('destroy')
<html>
<head>
<title>Draggable jQuery-UI Width Block</title>
<script src="jquery-1.4.2.min.js" ></script>
<script src="jquery-ui-1.8.1.custom.min.js" ></script>
</head>
<body>
<div id="tomove" style="width:100px;height:20px;background:silver;">
<span>some text</span>
</div>
<script>
$(document).ready( function() {
$('#tomove').draggable({
axis: 'x',
drag: function(event, ui) {
dragBlock( ui );
}
});
});
function dragBlock( ui ) {
if( ui.position.left > 400 ) {
ui.position.left = '400px';
}
if( ui.position.left < 0 ) {
ui.position.left = '0px';
}
}
</script>
</body>
</html>