neo*_*swf 2 jquery jquery-ui-sortable
我遇到了一个无法解决的问题.
我有一个Basecamp类似的项目列表,左侧有一个小菜单,带有拖动,编辑和废纸篓图标.
把手就在那里.他坐在可排序元素的范围之外,这就是为什么他根本不影响排序的原因.

如您所见,我的拖动图标位于左侧.他在{LI}范围之外.LI结束时,LI结束,因此Handle离开他的父母并且不会影响所有排序并且不会启动它.
当我拖动它但是将我的鼠标移动到LI的边界内时,比它想象的那样影响和排序.
我能做什么.我打破了我的头,搜索了一个手柄偏移的属性,或者任何方式为他定义我的手柄在你的范围之外.
我希望过去有人能够面对这个问题并且可能会有所帮助:)我想把一个子弹图像放到bg上,这样就可以给LI留下更多空间了.可能会做的伎俩...... :)
谢谢
我能够通过覆盖确定光标是否在元素上的方法来解决这个问题.由于我的列表与您的列表一样垂直,因此我将检查水平位置,以便仅检查垂直位置.这样,光标在水平方向的位置无关紧要.
只需在主jquery.ui.js包含之后和可排序代码之前将其覆盖以覆盖该方法:
// UI Fix for draggable
$.extend($['ui']['sortable'].prototype, {
_intersectsWithPointer: function(item) {
var isOverElementHeight = $.ui.isOverAxis(this.positionAbs.top + this.offset.click.top, item.top, item.height),
verticalDirection = this._getDragVerticalDirection(),
horizontalDirection = this._getDragHorizontalDirection();
if (!isOverElementHeight)
return false;
return this.floating ?
( ((horizontalDirection && horizontalDirection == "right") || verticalDirection == "down") ? 2 : 1 )
: ( verticalDirection && (verticalDirection == "down" ? 2 : 1) );
}
});
Run Code Online (Sandbox Code Playgroud)
显然,这会破坏水平排序的功能,因此您只想在特殊情况下包含它.
亲爱的jQuery UI团队:使用选项调用功能来处理此问题.:)
SammyK
| 归档时间: |
|
| 查看次数: |
1419 次 |
| 最近记录: |