在 TypeScript 中管理可排序的 JQueryUI
Managing JQueryUI Sortable in TypeScript
我正在尝试在 TypeScript(版本 3.2.1)开发中使用 JQueryUI Sortable(版本 1.12.1)方法.通常,这是一个相对简单的体验,但我在尝试实现 Sortable Widget 的 helper
选项时遇到了问题 运行。在 TypeScript 中,我的代码如下所示:
$('.connected-sortable').sortable({
connectWith: '.connected-sortable',
delay: 150,
helper: (evt: Event, item: JQueryUI.Sortable) => {
// How can I work with the JQueryUI.Sortable object?
// I really want a JQuery<HTMLElement> or even a
// plain Element as I want to do manipulate it.
// The following fails:
// Property 'hasClass' does not exist on type 'Sortable'
item.addClass('selected');
}
});
我希望能够像使用 JQuery<HTMLElment>
甚至普通的 Element
一样访问 JQueryUI.Sortable
对象,但我找不到 convert/access 底层的方法物品。作为参考,我的代码 运行s 在普通的旧 JavaScript 中,因为它基于此 Fiddle.
谁能指出我正确的方向?谢谢。
您使用 ui.item
定位可排序对象。
在可排序的 start
函数上,您可以添加类,并在停止时删除类;
$('.connected-sortable').sortable({
connectWith: '.connected-sortable',
delay: 150,
helper: (evt: Event, item: JQueryUI.Sortable),
start: function(event,ui) {
ui.item.addClass('selected');
},
stop: function(event,ui) {
ui.item.removeClass('selected');
}
});
我正在尝试在 TypeScript(版本 3.2.1)开发中使用 JQueryUI Sortable(版本 1.12.1)方法.通常,这是一个相对简单的体验,但我在尝试实现 Sortable Widget 的 helper
选项时遇到了问题 运行。在 TypeScript 中,我的代码如下所示:
$('.connected-sortable').sortable({
connectWith: '.connected-sortable',
delay: 150,
helper: (evt: Event, item: JQueryUI.Sortable) => {
// How can I work with the JQueryUI.Sortable object?
// I really want a JQuery<HTMLElement> or even a
// plain Element as I want to do manipulate it.
// The following fails:
// Property 'hasClass' does not exist on type 'Sortable'
item.addClass('selected');
}
});
我希望能够像使用 JQuery<HTMLElment>
甚至普通的 Element
一样访问 JQueryUI.Sortable
对象,但我找不到 convert/access 底层的方法物品。作为参考,我的代码 运行s 在普通的旧 JavaScript 中,因为它基于此 Fiddle.
谁能指出我正确的方向?谢谢。
您使用 ui.item
定位可排序对象。
在可排序的 start
函数上,您可以添加类,并在停止时删除类;
$('.connected-sortable').sortable({
connectWith: '.connected-sortable',
delay: 150,
helper: (evt: Event, item: JQueryUI.Sortable),
start: function(event,ui) {
ui.item.addClass('selected');
},
stop: function(event,ui) {
ui.item.removeClass('selected');
}
});