2015-06-14 51 views
1

我在嘗試拖動我的Project中的可旋轉div時出現奇怪的行爲。我不確定這個問題是否與Jquery UI或其他相關。Jquery UI可旋轉 - 拖動時突然跳轉

轉到我的項目,單擊黑色方塊(在左側工具欄中),然後單擊左側工具欄上的簡單邊緣箭頭按鈕。然後嘗試旋轉它並嘗試拖動它(它跳轉)。

當按下「添加簡單的箭頭」按鈕exectuted的操作是這樣的:

var $myArrow = $('<div class="ui-widget-content sArrow" style="display:inline-block"><img id="bli" width="150px;" heigth="150px;" src="images/1.png"/></div>'); 

    $myArrow.css("position","absolute"); 
    $($myArrow).rotatable(params); 
    $myArrow.draggable(); 
    $('#canvas').append(myArrow); 

和它的CSS:

.sArrow 
{ 
    border-radius: 5px; 
    border: 5px solid; 
    border-color: #FFFFFF; 
    position:absolute; 
    display:inline-block; 
} 

我一直在這個問題掙扎了2天,我仍然不知道如何解決它。 jquery的用戶界面可以旋轉specification,比方說你在div內創建一個div,你可以旋轉的內部div以及你可以拖動的外部,我試着做這個,但是這個奇怪的跳轉仍然發生(我不知道我是否在做它錯了,或者它不是一個JQuery UI問題)。

+0

旋轉後,您需要爲可拖動對象設置新的起點以避免跳躍。試試這個解決方案:http://stackoverflow.com/questions/1271817/jquery-ui-draggable-how-to-get-drag-start-position如果你想讓人們進一步幫助你,你可能想設置給我們一個小提琴。 – ggzone

回答

0

好吧,剛解決它通過遵循更好的教程。我首先必須創建一個div來包裝可旋轉的元素,然後我必須使這個div可拖動。顯然這是與jQuery UI主題相關的一些問題。因此,新代碼如下所示:

 var auxD = "dsA"+qtdSA; 
     var auxR = "rsA"+ qtdSA; 
     var rot = $('<div style="display:inline-block;"><img width="150px;" heigth="150px;" src="images/1.png"/></div>') 
     var wrap = $('<div class="sArrow" style="display:inline-block;"></div>'); 
     rot.attr("id",auxR); 
     wrap.attr("id",auxD); 
     wrap.append(rot); 
     if(qttProcesses > 0){ 
      $('.process').first().before(wrap); 
     } 
     else{ 
      canvas.append(wrap); 
     } 
     $(document).ready(function(){ 
       var params = { 
       start: function(event, ui) { 
       console.log("Rotating started"); 
      }, 
      rotate: function(event, ui) { 
       console.log("Rotating"); 
      }, 
      stop: function(event, ui) { 
       console.log("Rotating stopped"); 
      }, 
     }; 
     $('#'+auxR).rotatable(params); 
     $('#'+auxD).draggable(); 
     $('#'+auxD).css("position","absolute"); 
     qtdSA = qtdSA+1; 
    });