Javascript jquery ui可拖动异步帮助程序
我需要在一个异步函数完成后创建一个jqueryUI可拖动的帮助器,但似乎我不能在帮助器函数中返回承诺。这里是fiddle(),下面是代码:Javascript jquery ui可拖动异步帮助程序,javascript,jquery,jquery-ui,asynchronous,jquery-ui-draggable,Javascript,Jquery,Jquery Ui,Asynchronous,Jquery Ui Draggable,我需要在一个异步函数完成后创建一个jqueryUI可拖动的帮助器,但似乎我不能在帮助器函数中返回承诺。这里是fiddle(),下面是代码: function getItems() { var dfd = new $.Deferred(); dfd.resolve('<div>Hello World</div>') return dfd.promise(); } $( '.my-draggable' ).draggable({ appen
function getItems() {
var dfd = new $.Deferred();
dfd.resolve('<div>Hello World</div>')
return dfd.promise();
}
$( '.my-draggable' ).draggable({
appendTo: 'body',
helper: function () {
/*
getItems.done(function(items) {
//Originally tried "return items;" here, which obviously wouldn't work on parent helper function
return items;
});
*/
//return '<div>Hello World</div>'; //this works
return getItems(); //this does not work
}
});
函数getItems(){
var dfd=新的$.Deferred();
dfd.resolve('Hello World')
返回dfd.promise();
}
$('.my draggable')。draggable({
附于:'正文',
助手:函数(){
/*
getItems.done(函数(项){
//最初在这里尝试了“returnitems;”,这显然不适用于父助手函数
退货项目;
});
*/
//返回“Hello World”;//这有效
return getItems();//这不起作用
}
});
正如我的评论所提到的,我最初试图从子getItems()函数中返回项,但忘记了不能从子函数中返回父函数
我的问题与帖子的标题类似,但很难说出帖子的问题,因为细节有限,没有代码示例。不清楚你想实现什么。看起来它的设置也不正确。您是否会使用
.done()
与promise进行比较?还应该看到:Twisty,JqueryUI帮助程序是开始拖动时显示的。正如我的提琴所示,我想基于异步调用构建它。您可以在控制台中看到错误,或者取消注释第一个helper return以查看它是否同步工作。是的,如果可以从done()函数内部返回,我将使用注释掉的帮助程序代码中所示的done(),但您不能这样做(据我所知)。另一个栈柱与此无关,而被接受的小提琴甚至不起作用。。。