Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/110.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery ui 如何防止jquery可排序Portlet在未覆盖它们时进行分配_Jquery Ui_Jquery Ui Sortable - Fatal编程技术网

Jquery ui 如何防止jquery可排序Portlet在未覆盖它们时进行分配

Jquery ui 如何防止jquery可排序Portlet在未覆盖它们时进行分配,jquery-ui,jquery-ui-sortable,Jquery Ui,Jquery Ui Sortable,当使用jqueryui的可排序插件时,存在一个问题,即在开始拖动后将鼠标移动到放置位置上,它会记住这一点,并将鼠标放置在该位置,即使在释放鼠标时没有移动到任何位置 有没有一种方法可以防止这种情况发生,这样当释放鼠标时,如果拖动的portlet不在放置位置上,它就会跳回到原来的位置?我有一个解决方法来防止不适当的分配,我的代码更复杂,所以我将其简化为最基本的需要 使用OVER事件向目标添加悬停类 over: function(event,ui){ $(this).addClass('hover

当使用jqueryui的可排序插件时,存在一个问题,即在开始拖动后将鼠标移动到放置位置上,它会记住这一点,并将鼠标放置在该位置,即使在释放鼠标时没有移动到任何位置


有没有一种方法可以防止这种情况发生,这样当释放鼠标时,如果拖动的portlet不在放置位置上,它就会跳回到原来的位置?

我有一个解决方法来防止不适当的分配,我的代码更复杂,所以我将其简化为最基本的需要

使用OVER事件向目标添加悬停类

over: function(event,ui){
  $(this).addClass('hover');
}
out: function(event,ui){
  $(this).addClass('hover');
}
使用OUT事件从目标中删除hover类

over: function(event,ui){
  $(this).addClass('hover');
}
out: function(event,ui){
  $(this).addClass('hover');
}
在接收时,如果目标没有have hover类,则取消排序。取消将列表返回到排序开始前的状态

receive: function(event,ui){
  if( !$(this).hasClass('hover')){
    $(this).sortable('cancel');
  }
}
这还剩下一个问题。目标不会再次响应OVER事件,直到其他目标首先触发OVER事件

列举 项目1 项目2

名单B

项目3

  • 单击项目1,在列表B上拖动:在列表B上触发over事件
  • 继续将项目1从列表B中拖出:在列表B上触发out事件
  • 在远离列表a和列表B的位置释放项目1:在列表B上触发RECEIVE(但是如果列表B没有悬停类,我们可以取消排序,该类在步骤2中被OUT删除)
  • 此序列显示如何清除假定目标

  • 单击项目1,在列表B上拖动:在列表B上触发over事件
  • 继续将项目1从列表B中拖出:上触发out事件 名单B
  • 继续将项目1再次拖动到列表B上:未触发“覆盖”事件
  • 继续将项目1拖动到列表A上:在列表A上触发over事件
  • 继续将项目1从列表A中拖出:列表A上触发了out事件
  • 继续将项目1再次拖动到列表B上:在列表B上触发over事件
  • 我仍然在寻找解决最后一个问题的方法,因为它需要用户通过拖动进行额外的运动,以使目标再次处于活动状态(假设他们想将项目1从列表A拖动到列表B,但是超出了范围,现在列表B不会触发第二次移动,这意味着我不能将hover类放在它上面以显示它是活动的放置点

    总之,sortable会触发OUT,但仍会记住触发RECEIVE的丢弃事件中的目标,并防止