gpt4 book ai didi

Jquery 可排序错误 : wrong top + left offset for dragged item every first time after being initialized

转载 作者:行者123 更新时间:2023-12-05 06:50:08 26 4
gpt4 key购买 nike

我遇到了一个奇怪的问题 sortable错误:

enter image description here

每次我点击 Manual , 它会 append() Manual选项卡 html ,这是一个 sortable <ul><li></li> ... </ul>列表

enter image description here

在那之后,如果我拖动任何 <li>项目(示例 Item 2 ),拖动的元素 left + top第一次偏移值错误:

enter image description here

如果拖动的元素垂直移动到另一个位置或停止拖动,它会按预期工作

enter image description here

这是 sortable 的 javascript 代码片段列表:

var tab_html = '<ul id="featured-sortable">'+
' <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 1</li>'+
' <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 2</li>'+
' <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 3</li>'+
' <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 4</li>'+
' <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 5</li>'+
' <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 6</li>'+
' <li class="ui-state-default"><span class="ui-icon ui-icon-arrowthick-2-n-s"></span>Item 7</li>'+
'</ul>';


// Append New Last Child
$(this).closest('div.setting-item').append(tab_html);

/*
|==========================================================================
| Featured sortable
|==========================================================================
*/
$( function() {

$( "#featured-sortable" ).sortable({
// cursorAt: { top: 0, left: 0 },
start: function(e, ui)
{
console.log('ui.offset: ' + JSON.stringify(ui.offset, null, 2));
console.log('ui.position: ' + JSON.stringify(ui.position, null, 2));
console.log('ui.originalPosition: ' + JSON.stringify(ui.originalPosition, null, 2));

let target = $( event.target );

console.log('target.css(top): ' + target.css('top'));
console.log('target.css(left): ' + target.css('left'));

},
sort: function(e, ui)
{
let target = $( event.target );

console.log('target.css(top): ' + target.css('top'));
console.log('target.css(left): ' + target.css('left'));

// ui.originalPosition.top = target.css('top');
// ui.originalPosition.left = target.css('left');
}
}).disableSelection();


} );

// Refresh Featured-Sortable
$( "#featured-sortable" ).sortable( "refresh" );

最佳答案

对我来说,这是通过添加来解决的

position: relative;
overflow: auto;

在父元素上。参见 here对于类似的问题

关于Jquery 可排序错误 : wrong top + left offset for dragged item every first time after being initialized,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66469392/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com