2016-01-01 71 views
0

我試圖每次動態創建新的HTML元素時調用EasyUI的draggable。我附上像這樣的draggable方法:EasyUI:draggable()在被調用時不初始化

function initializedrag() { 
    console.log("initializedrag called") 
    $(".item").draggable({ 
     revert:true, 
     proxy:'clone', 
     onStartDrag:function(){ 
      $(this).draggable('options').cursor = "not-allowed"; 
      $(this).draggable('proxy').css('z-index',3); 
     }, 
     onStopDrag:function(){ 
      $(this).draggable('options').cursor="move"; 
     } 
    }); 
    console.log("end of initializedrag") 
} 

,而且我用load中包含一個div一些li項目,有一類.item,像這樣,當a標籤一個新的HTML網站的加載頁面已準備就緒:

$(function() { 
    console.log("ready"); 
    $("#shop").load("shopcontent/cat1.html"); 
    initializedrag(); 

    ... 
}); 

通過console.logs,它調用的功能正常,但是,拖拽功能不實際工作。當我有一個已經在頁面上的元素時,draggable完全相同,在頁面加載時有draggable。但是,每當我撥打initializedrag函數時,我都需要它。
這是怎麼回事?

回答

1

固定! 這真的很簡單,我只是在被加載內容時調用的函數中包含initializedrag()!因此,而不是 :

$("#shop").load("shopcontent/cat1.html"); 
initializedrag(); 

我所做的:

$("#shop").load("shopcontent/cat1.html", function() { 
    initializedrag(); 
}); 

這是奇怪的,因爲我把initializedrag()的內容,就像上昨日的功能,但它沒有工作:)