Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
leizi929
Sortable
提交
77e04818
S
Sortable
项目概览
leizi929
/
Sortable
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
Sortable
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
77e04818
编写于
5月 02, 2021
作者:
O
Owen Mills
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
#1942: Check if ghost is first
上级
a12fb2bc
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
3 deletion
+28
-3
src/Sortable.js
src/Sortable.js
+26
-1
src/utils.js
src/utils.js
+2
-2
未找到文件。
src/Sortable.js
浏览文件 @
77e04818
...
...
@@ -1175,7 +1175,7 @@ Sortable.prototype = /** @lends Sortable.prototype */ {
return
completed
(
false
);
}
//
assign target only if condition is true
//
if there is a last element, it is the target
if
(
elLastChild
&&
el
===
evt
.
target
)
{
target
=
elLastChild
;
}
...
...
@@ -1193,6 +1193,23 @@ Sortable.prototype = /** @lends Sortable.prototype */ {
return
completed
(
true
);
}
}
else
if
(
elLastChild
&&
_ghostIsFirst
(
evt
,
vertical
,
this
))
{
let
firstChild
=
getChild
(
el
,
0
,
options
,
true
);
if
(
firstChild
===
dragEl
)
{
return
completed
(
false
);
}
target
=
firstChild
;
targetRect
=
getRect
(
target
);
if
(
onMove
(
rootEl
,
el
,
dragEl
,
dragRect
,
target
,
targetRect
,
evt
,
false
)
!==
false
)
{
capture
();
el
.
insertBefore
(
dragEl
,
firstChild
);
parentEl
=
el
;
// actualization
changed
();
return
completed
(
true
);
}
}
else
if
(
target
.
parentNode
===
el
)
{
targetRect
=
getRect
(
target
);
let
direction
=
0
,
...
...
@@ -1762,6 +1779,14 @@ function _unsilent() {
_silent
=
false
;
}
function
_ghostIsFirst
(
evt
,
vertical
,
sortable
)
{
let
rect
=
getRect
(
getChild
(
sortable
.
el
,
0
,
sortable
.
options
));
const
spacer
=
10
;
return
vertical
?
((
evt
.
clientX
<
rect
.
left
-
spacer
)
||
(
evt
.
clientY
<
rect
.
top
&&
evt
.
clientX
<
rect
.
right
))
:
((
evt
.
clientY
<
rect
.
top
-
spacer
)
||
(
evt
.
clientY
<
rect
.
bottom
&&
evt
.
clientX
<
rect
.
left
))
}
function
_ghostIsLast
(
evt
,
vertical
,
sortable
)
{
let
rect
=
getRect
(
lastChild
(
sortable
.
el
,
sortable
.
options
.
draggable
));
...
...
src/utils.js
浏览文件 @
77e04818
...
...
@@ -296,7 +296,7 @@ function isScrolledPast(el, elSide, parentSide) {
* @param {Object} options Parent Sortable's options
* @return {HTMLElement} The child at index childNum, or null if not found
*/
function
getChild
(
el
,
childNum
,
options
)
{
function
getChild
(
el
,
childNum
,
options
,
includeDragEl
)
{
let
currentChild
=
0
,
i
=
0
,
children
=
el
.
children
;
...
...
@@ -305,7 +305,7 @@ function getChild(el, childNum, options) {
if
(
children
[
i
].
style
.
display
!==
'
none
'
&&
children
[
i
]
!==
Sortable
.
ghost
&&
children
[
i
]
!==
Sortable
.
dragged
&&
(
includeDragEl
||
children
[
i
]
!==
Sortable
.
dragged
)
&&
closest
(
children
[
i
],
options
.
draggable
,
el
,
false
)
)
{
if
(
currentChild
===
childNum
)
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录