Можно ли сделать div перетаскиваемым с помощью $ .ui.draggable ()? - PullRequest
2 голосов
/ 12 сентября 2011

У меня проблемы с получением $('#id').draggable(), когда я вставляю его в html-страницу, используя мой пользовательский скрипт Greasemonkey. Есть ли способ сделать что-то перетаскиваемым, используя вместо этого $ .ui.draggable ()? То, что я хочу, это что-то вроде:

$.ui.draggable(document.getElementById('id'), {'option': 'value'});

Вот часть, где я вставляю jQuery:

if (!document.getElementById('ccst1')) {
    var ccst1 = document.createElement("script");
    ccst1.id = "ccst1";
    ccst1.src = "http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js";
    ccst1.type = "text/javascript";
    document.head.appendChild(ccst1);
    var ccst2 = document.createElement("script");
    ccst2.id = "ccst2";
    ccst2.src = "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js";    
    ccst2.type = "text/javascript";
    document.head.appendChild(ccst2);
    var ccst3 = document.createElement("script");
    ccst3.id = "ccst3";
    ccst3.src = "http://yourjavascript.com/3314922191/jquery.scrollTo-min.js";
    ccst3.type = "text/javascript";
    document.head.appendChild(ccst3);
    var ccst4 = document.createElement("script");
    ccst4.id = "ccst4";
    ccst4.type = "text/javascript";
    ccst4.innerHTML = "$(function(){$('#ccpanelmassiveconstruct').draggable({'handle': '#ccpmchandle', 'constrain': 'parent', 'distance': 20, 'cursor': 'move', 'grid': [10,10], 'scroll': true});$('#concealediframe').resizable();$('#ccpmctabs').tabs();});";
    document.head.appendChild(ccst4);
}

РЕДАКТИРОВАТЬ: Когда я использую консоль Firebug для тестирования, она распознает, что $ и jQuery существуют, и распознает, что $ .ui существует, и распознает, что $ .ui.draggable существует. Но когда я пытаюсь сделать что-то перетаскиваемое с помощью $ ('id'). Draggable (), происходит сбой с ошибкой "$ is notfined".

Спасибо!

1 Ответ

1 голос
/ 15 сентября 2011

Как оказалось, я решил свою проблему.Я думаю, что это может быть тема, связанная с другими, которые я видел на форумах для Userscripts.org, так что если кто-то заинтересован в моем решении, вот оно.

Проблема, на самом деле, имеет отношение к jQueryне загружается, а затем jQuery UI пытается вызвать его до его загрузки, а затем другие вещи пытаются вызвать jQuery UI без загрузки THAT.Вот рабочий код, который я сейчас использую:

var ccst1 = document.createElement("script");
ccst1.id = "ccst1";
ccst1.src = "http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js";
ccst1.type = "text/javascript";
document.body.appendChild(ccst1);
function ccst2func() {
    var ccst2 = document.createElement("script");
    ccst2.id = "ccst2";
    ccst2.src = "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.min.js";
    ccst2.type = "text/javascript";
    document.body.appendChild(ccst2);
    ccst2.addEventListener("load", ccst4func, true);
}
ccst1.addEventListener("load", ccst2func, true);

document.body.insertBefore(concealerPanel, document.body.firstChild);

function ccst4func() {
    var ccst4 = document.createElement("script");
    ccst4.id = "ccst4";
    ccst4.type = "text/javascript";
    ccst4.innerHTML = "$('#ccpanelmassiveconstruct').draggable({'handle': '#ccpmchandle', 'constrain': 'parent', 'distance': 20, 'cursor': 'move', 'grid': [10,10], 'scroll': true});\n$('#iframeDragger').resizable();\n$('#ccpmctabs').tabs();";
    document.body.appendChild(ccst4);
}

Спасибо Джои Геральнику за это решение.

...