Функция jQuery UI Draggable не работает

Я включил библиотеку jquery, а затем библиотеку пользовательского интерфейса jQuery, и она все еще не работает. Я использую браузер Google Chrome.

Код следует:

<script src="js/jquery-1.6.2.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.16.custom.min.js" type="type/javascript"></script>
<script type="text/javascript">
    $(function() {
        $( ".drag" ).draggable();
    });
</script>

<div id="aboutBox" class="boxLook boxBg drag"></div>

Я нигде не могу найти решения. Отладчик говорит, что метод draggable не существует. Но я добавил jQuery И jQuery UI, и пути правильные! это просто не работает.


person AlexMorley-Finch    schedule 23.08.2011    source источник
comment
Используемый вами файл jquery ui js включает в себя перетаскиваемый модуль? Попробуйте воссоздать файл пользовательского интерфейса jquery с их веб-сайта и убедитесь, что он включен.   -  person Kokos    schedule 23.08.2011
comment
я открыл JS-файл jquery ui и искал draggable, и он существовал, я также добавил ui-draggable в поле «О программе». Еще ничего   -  person AlexMorley-Finch    schedule 23.08.2011


Ответы (9)


У вас есть одна из этих проблем:

  1. Ваши файлы пути jQuery или jQuery UI Javascript неверны
  2. Ваш пользовательский интерфейс jQuery не включает перетаскиваемые
  3. Ваши файлы jQuery или jQuery UI Javascript повреждены
  4. Ваш div не оформлен и пуст, поэтому перетаскивать нечего
  5. Что-то сталкивается с вашим jQuery или пользовательским интерфейсом jQuery, поэтому оно не работает.

Ваш код правильный, и он должен работать:

http://jsfiddle.net/u7zWA/

person Kokos    schedule 23.08.2011
comment
Хорошо, странно, я заставил его работать. Вместо того, чтобы добавлять сценарии через мой проект, я извлек код из ajax.googleapis.com/ajax/libs/jqueryui/1.8/jquery-ui.min.js И это работает! Ура! Но теперь у меня другая проблема, я могу перетащить Div. Но когда я отпускаю div, он возвращается в исходное положение: s - person AlexMorley-Finch; 23.08.2011
comment
draggable({ revert: false }), если мой ответ помог вам, пожалуйста, проголосуйте и примите :) - person Kokos; 23.08.2011
comment
6. Вы загружаете свой скрипт пользовательского интерфейса перед jquery - person ErichBSchulz; 29.04.2013

Попробуй это :

<script src="js/jquery-1.6.2.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.16.custom.min.js" type="type/javascript"></script>
<script src="js/ui/jquery.ui.draggable.js" type="type/javascript"></script>
<script type="text/javascript">
    $(function() {
        $( ".drag" ).draggable();
    });
</script>

<div id="aboutBox" class="boxLook boxBg drag"></div>

Вы должны внедрить перетаскиваемый компонент в свой проект и включить его! http://jqueryui.com/download

person Maxooo    schedule 23.08.2011
comment
Вероятно, он включен в js/jquery-ui-1.8.16.custom.min.js. custom — это суффикс, используемый для обозначения пользовательских сборок библиотеки пользовательского интерфейса jQuery. - person donut; 23.02.2013

Моя проблема заключалась в том, что у меня было другое событие, связанное с mousemove, которое содержало e.stopPropagation();, что мешало работе кода мыши .draggable().

$(document).on('mousemove', '*', function (e) { MyFunction(e); });

function MyFunction (sender, e)
{
    e.stopPropagation();
    ...
}

Решение состояло в том, чтобы удалить e.stopPropagation(); и переоценить его реализацию.

person Valamas    schedule 15.10.2013
comment
вывод консоли: Uncaught TypeError: Не удается прочитать свойство «stopPropagation» неопределенного. Не могли бы вы указать причину? - person Andriy Boyko; 19.08.2015
comment
проверьте, что вы проходите e через дерево функций - person Valamas; 20.08.2015
comment
Спасибо, бро. Я потратил добрых 6 часов, пытаясь понять, что не так. Оказывается, между двумя файлами .js, которые я загружал в одном и том же представлении, было несоответствие. - person Daniel Pavlovsky; 04.11.2020

Я исправил это, установив положение диалога как фиксированное. Это сработало как по волшебству после нескольких часов стресса:

.ui-dialog {
    position: fixed;
}
person periback2    schedule 27.05.2014

В моем случае я использовал более старую версию пользовательского интерфейса jQuery. Я заменил старую ссылку на следующую, и все заработало, как задумано.

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.9.1/jquery-ui.min.js"></script>
person Colin    schedule 25.11.2016

Проверьте, загружен ли ваш перетаскиваемый объект в окне просмотра. Если это не так, он не будет работать должным образом.

Мой совет - добавить этот код

<script type="text/javascript">             
$(function() {                         
    $( ".drag" ).draggable({ helper:'clone' });
});
 </script>

СРАЗУ ПОСЛЕ перетаскиваемого объекта, чтобы быть абсолютно уверенным, что все загружено в нужное время.

Когда вы будете уверены, что все в порядке, тогда вы сможете провести рефакторинг.

person Alex Moleiro    schedule 02.07.2013

Другая возможная причина заключается в том, что вы отключили все события перетаскивания где-то еще в своем коде, используя что-то вроде этого:

window.ondragstart = function () { return false; };

Это предотвратит срабатывание события перетаскивания пользовательского интерфейса jQuery.

person Nanki    schedule 18.05.2015

У меня была такая же проблема, и я решил проблему с обновлением файла пользовательского интерфейса Jquery.

<script src="https://cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.js" type="text/javascript"></script>
person Sandeep Sherpur    schedule 23.08.2019

У меня был еще один файл в кодовой базе, использующий draggable, а затем я просто хотел повторно использовать имя класса.

Это исправило проблему для меня: я переименовал класс CSS, чтобы он отличался от предыдущего.


Предыдущая реализация:

  $(".old_css_class_name").unbind("droppable");
    $(".old_css_class_name").draggable({
        helper: "clone",
        cursor: "move",
        connectToSortable: ".css_name_to_sortable_implementation" //optional
    });

Новая реализация:

$(".new_css_class_name").unbind("droppable");
    $(".new_css_class_name").draggable({
        helper: "clone",
        cursor: "move",
        connectToSortable: ".new_name_to_sortable_implementation" //optional
    });

Необязательно: вы можете добавить эту строку кода перед реализацией функции перетаскивания.

$(".the_new_css_class_name").unbind("droppable");
person anasey    schedule 29.07.2020