2016-01-01 3 views
0

Я пытаюсь вызвать EasyUI's draggable каждый раз, когда я динамически создаю новые HTML-элементы. Я метод 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 загрузить в новый HTML-сайт, который содержит DIV с некоторыми li элементов и a тегов, которые имеют класс .item, как это так, когда страница готова:

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

    ... 
}); 

Через console.logs, это вызов функции штрафа, однако, функциональность перетаскивания на самом деле не работает. Точно такой же draggable работает, когда у меня есть элемент, который уже находится на странице, и draggable на загрузке страницы. Однако мне нужно, чтобы он работал, когда я вызываю функцию initializedrag.
Что здесь происходит?

ответ

1

FIXED! Это было довольно просто, я просто включил initializedrag() в функцию, которая вызывается при загрузке содержимого! Таким образом, вместо:

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

я сделал:

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

Что странно, потому что я положил содержимое initializedrag() в функции так же, как выше вчера, но она не работает :)