我在Firefox3.6IE7-8的jQuery UI 1.7.2可排序列表中遇到了问题。当我向下滚动一点时,helper元素似乎具有与我从鼠标指针向下滚动的相同高度的偏移量,这使得无法看到您最初开始拖动的是哪一项。我该如何解决这个问题呢?如果没有修复,什么是真正好的替代拖拽插件?
下面是我的可排序的初始化参数。
$("#sortable").sortable( {placeholder: 'ui-state-highlight' } );
$("#sortable").disableSelection();发布于 2010-08-17 04:49:23
我看到了这个问题,并且能够通过从我的页面上的一个包含div中删除css规则position:relative来解决它。另请参阅:http://forum.jquery.com/topic/sortable-offset-when-element-is-dragged-and-page-scrolled-down-ff
发布于 2010-08-03 10:48:38
如果要防止浏览器嗅探,CSS唯一的解决方案是将ul或容器样式设置为overflow: auto。如果你通过firebug查看源代码,就会发现jQuery在他们的example中就是这样做的。
发布于 2013-11-27 02:26:06
使用overflow: auto;对我来说不是一个选择。我能够使用此sort事件处理程序解决此问题:
$(...).sortable({
...
sort: function(event, ui) {
var $target = $(event.target);
if (!/html|body/i.test($target.offsetParent()[0].tagName)) {
var top = event.pageY - $target.offsetParent().offset().top - (ui.helper.outerHeight(true) / 2);
ui.helper.css({'top' : top + 'px'});
}
},
...
});它并不完美,但它不需要浏览器嗅探。在IE8,Chrome和火狐上测试过。
编辑:使用jQuery 1.10.0和jQuery UI 1.10.3。
https://stackoverflow.com/questions/2451528
复制相似问题