2013-04-05 19 views
0

我在程序中遇到問題。我想將圖層的拖拽設置爲false。但我不知道如何設置它。我在用戶點擊按鈕時創建了圖層。圖層有不同的名稱。圖層的名稱設置爲「abc」+ i。我是一個總是增加的變量。 我使用jquery-1.8.3.js,jquery-ui.js和kinetic-v4.3.2-beta.js。如何在名稱層上設置Draggable(false)

document.getElementById('computer').addEventListener('click', function(e) { 
    draw(images); 
    layer.add(Img); 
    stage.add(layer); 
    i++; 
}, false); 

這裏是函數的代碼繪製

function draw(images) { 
    Img = new Kinetic.Rect({ 
     x: 50, 
     y: 150, 
     width: 50, 
     height: 50, 
     fillPatternImage: images.abc, 
     name: "abc"+i, 
     draggable: true 
    }); 
} 

然後在該層上用戶雙擊,彈出一個對話框出現。我將該圖層的名稱保存爲變量名稱。

layer.on('dblclick', function(evt) { 
    var shape = evt.shape; 
    name = shape.getName(); 

    $("#dialog-form").dialog("open"); 
}); 

$("#dialog-form").dialog({ 
    autoOpen: false, 
    height: 350, 
    width: 350, 
    modal: true, 
    buttons: { 
     "Submit": function() { 
      **name.setDraggable(false);** 
     }, 
     Cancel: function() { 
      $(this).dialog("close"); 
     } 
    }, 
    close: function() { 
     allFields.val("").removeClass("ui-state-error"); 
    } 
}); 

我不知道如何使用that..Please幫助.. ..的THx

+0

爲什麼不直接使用的形狀變量? shape.setDraggable(假);由於getName獲取節點的名稱,因此您可以將該節點作爲形狀正確的參考? – SoluableNonagon 2013-04-05 13:26:16

+0

另外,你可能想在KineticJS API中查看,但我認爲你可以做stage.get(name).setDraggable(false); – SoluableNonagon 2013-04-05 13:27:16

+0

我試過shape.setDraggable(false);它可以。但是當我使用stage.get(name).setDraggable(false);在$(「#dialog-form」).dialog中不起作用。 – della 2013-04-06 01:50:37

回答