2010-06-18 66 views
3

我有一个选择和拖动功能。基本上你可以选择3个元素并将它们拖到一起。jQuery选择并拖动Chrome问题

问题出在Chrome上。如果一个元素具有“-webkit-transform:rotate”的特性,则整个跨度将跳跃起来。它很奇怪,因为它在Firefox中分支很好。

你可以看到一个工作示例: http://jsfiddle.net/K2EX9/4/ 只需在Chrome中试一下,用鼠标选择3个元素并拖动它们即可。

下面是代码:

$('#selectable1').bind('dragSetup', function() { 

    var selected = $([]), offset = {top:0, left:0}; 

    $('#selectable1 span.drag').draggable({ 
       start: function(ev, ui) { 
       $(this).is("#selectable1 span.ui-selected") || $("#selectable1 span.ui-selected").removeClass("ui-selected"); 
       selected = $("#selectable1 span.ui-selected").each(function() { 
       var el = $(this); 
       el.data("offset", el.offset()); 

       }); 

       offset = $(this).offset(); 

      }, 

      drag: function(ev, ui) { 

       var dt = ui.position.top - offset.top, dl = ui.position.left - offset.left; 

       selected.not(this).each(function() { 
        var el = $(this), off = el.data("offset"); 
        el.css({top: off.top + dt, left: off.left + dl}); 
       }); 
      }, 
    }); 

}); 

谢谢。

+0

我不认为这是奇怪的是,它在Firefox,像Firefox是不会注重一个“-webkit-变换”无论如何。 – Pointy 2010-06-18 12:43:21

+0

我在FF中也有一个-moz-transform,它起作用。我已经尝试过在Chrome中对旋转元素的简单拖动,并获得相同的“跳转”。必须是Chrome的错误 – Mircea 2010-06-18 12:49:23

回答

0

我无法在IE9中测试它(有一个mac),但在拖动功能的右括号中有一个不应该存在的逗号。虽然在大多数浏览器中这不会导致一个致命的错误,IE知道死于小事情。

编辑:刚刚公布的这个问题有多老...对不起