我有一个元素列表,我想使用 Jquery UI 对其进行排序和调整大小。将它们结合起来在 Chrome 和 Firefox 中效果很好。但是在 IE8 中(无论是在正常视图还是在兼容性视图中),任何一种行为在单独使用时效果都很好,但在组合使用时,所产生的混合行为是不可取的。
我的期望是通过拖动可调整大小的手柄来调整元素的大小不会激活可排序行为并移动该元素。不幸的是,当我拖动元素的调整大小区域时,它也会拖动元素,就好像我在移动它的排序位置一样。我希望这两种行为是排他的。这是复制行为的代码:
<!DOCTYPE html>
<html>
<head>
<link type="text/css" href="http://jqueryui.com/latest/themes/base/ui.all.css" rel="stylesheet" />
<script type="text/javascript" src="http://jqueryui.com/latest/jquery-1.3.2.js"></script>
<script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.core.js"></script>
<script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.resizable.js"></script>
<script type="text/javascript" src="http://jqueryui.com/latest/ui/ui.sortable.js"></script>
<style type="text/css">
.item { width: 200px; height: 20px; border: 1px solid gray; float: left; }
</style>
<script type="text/javascript">
$(document).ready(function(){
$(".item").resizable({
start:function() {
$("#wrapper").sortable("disable");
},
stop:function() {
$("#wrapper").sortable("enable");
}
});
$("#wrapper").sortable({
items:".item"
});
});
</script>
</head>
<body>
<div id="wrapper">
<div class="item">a</div><div class="item">b</div><div class="item">c</div><div class="item">d</div>
</div>
</body>
</html>
我尝试了几种策略来解决这个问题,包括:
- 上面的方法,它试图在调整大小开始时禁用可排序。不幸的是,这根本没有效果。
- 让可调整大小的启动函数向项目添加一个类,然后按该类进行排序过滤器(例如 $("#wrapper").sortable({items:".item:not(.resizing)"}); 和 $ ("#wrapper").sortable({items:".item", cancel:".resizing"}); )
- 关于哪些选择器用于可排序和可调整大小的几种变体
- 广泛的谷歌搜索,在我的办公桌上敲打我的头,并在微软的总体方向上喃喃自语。
任何帮助是极大的赞赏。