Jquery ui“恢复”模态表单上的位置取消

Posted

技术标签:

【中文标题】Jquery ui“恢复”模态表单上的位置取消【英文标题】:Jquery ui "revert" position on modal form Cancel 【发布时间】:2013-06-04 23:33:16 【问题描述】:

我有一组可以拖动的元素(如果需要,可以拖放),当用户停止拖动操作时,我需要一个表单出现(通过拖动:停止或放下)来更新移动的对象,如果用户取消模态表单,我希望该项目“恢复”到用户从中拖动它的原始位置。所以似乎有几个选择:

对我来说,这是众所周知的“鸡和蛋”场景,我相信你会很快告诉我根本不是这样,但事实是这样:拖放成功,或者放下并“做使用revert:invalid时的东西”?

$("#draggable").draggable(  
 //revert: true, 
 revert: "invalid",//only works with drop
 cursor: "hand" ,
 grid: [ 44,0 ],
 axis: "x",                     
 cursor: "move",     
 stop: function(ev, ui)    
   //Do Something here??                          

       $( "#dialog-confirm" ).dialog(
          resizable: false,
          height:140,
          modal: true,
          buttons: 
             "Yep": function() 
                 $( this ).dialog( "close" );
                ,
             "Nope": function() 
              $( this ).dialog( "close" );
                   // ...or Do something here?
                
              
            );


       
    ); 

http://jsbin.com/olawas/1/edit

【问题讨论】:

您是否想过简单地从服务器刷新页面? 我做了,但似乎需要很多代码来重新初始化所有内容(这可能是我对 live/ready 缺乏了解)..但是这些元素有几件事情他们做了刷新将是一个挑战,字面的页面刷新会破坏用户体验 我相信这将是一个像 ui.draggable.draggable('option','revert',true); 这样的选项。或一些简单的东西,但我似乎无法将它拼凑起来.. 【参考方案1】:

也许你之前也有过这样的想法,但是为什么你不保存 css top, left, bottom, right 来自“拖动”元素,在“拖动”事件和“开始”事件中,所以在停止时,您只需决定元素应该保留哪个。

It's something like this what you want to do ?

【讨论】:

这很好!它似乎在示例中运行良好,我将在今天实现它并在这里发布它是如何进行的。谢谢!考虑到他们在 revert:option:invlaid on drop 中投入了多少想法,我真的很惊讶 Jq-ui 中没有内置函数。再次感谢您的解决方案让我继续前进。

以上是关于Jquery ui“恢复”模态表单上的位置取消的主要内容,如果未能解决你的问题,请参考以下文章

如何根据条件恢复可拖动的jquery UI的位置

使用网格恢复“无效”不会使用 jQuery UI Draggable 返回到起始位置

在反应本机模式上添加 UI 元素,例如固定位置上的按钮

jQuery UI 模态表单疯狂踩坑

jQuery UI 可排序:如果更新回调使 AJAX 调用失败,则恢复更改?

模态表单上的 jQuery submit() vc click()