Сортируемый jQuery не является функцией - PullRequest
8 голосов
/ 31 октября 2011

Я пытаюсь создать упорядоченный список элементов, которые можно перетаскивать с помощью плагина Sortable jQuery UI версии 1.8.16.Тем не менее, я получаю сообщение об ошибке $("#ol-id ol").sortable is not a function, где «ol-id» является идентификатором списка.Мой код выглядит следующим образом:

//Sorting stuff
if($("#li-id li").size()>1) {
    $("#ol-id ol").sortable({
        revert:         true,
        axis:           'y',
        containment:    'parent',
        cursor:         'move',
        handle:         'div.link_div',
        smooth:         false,
        opacity:        0.7,
        tolerance:      'pointer',
        start: function(){
            $("#ol-id").removeClass("bottom_dragged");
        },
        update: function(){
            $("#ol-id ol").sortable({disabled : true});
            $("#saving_indicator").html("saving...")
            $("#saving_indicator").show();
                            //do other stuff...
        }
    })
}

Как ни странно, ошибка отображается в Firebug как строка с update: function(){.

Я проверил, что эта функция вызывается после обоихстраница загружена, и библиотека пользовательского интерфейса jQuery загружена.Я включаю в заголовок jquery-1.6.2.min.js и jquery-ui-1.8.16.custom.min.js.Более того, я проверил, что все имена идентификаторов верны и соответствуют их HTML-аналогам.

Итак, если это не пропущенный материал, связанный с ресурсами, в чем причина проблемы?мой HTML-заголовок:

<link href="/_css/styles.css?mod=1317745564" type="text/css" rel="stylesheet">
<link href="/_javascript/qtip/jquery.qtip.min.css?mod=1315947301" type="text/css" rel="stylesheet">
<script type="text/javascript" async="" src="http://www.google-analytics.com/ga.js">
<script type="text/javascript" async="" src="http://www.google-analytics.com/ga.js">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js" type="text/javascript">
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js">
<link rel="stylesheet" type="text/css" href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/start/jquery-ui.css">
<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/themes/le-frog/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.16/jquery-ui.js" type="text/javascript">
<script src="/_javascript/sets.js?mod=1320080042" type="text/javascript"> //Sorting stuff code is here
<script type="text/javascript" src="http://dev.selfcheck.vudat.msu.edu/_javascript/jquery.jsonp.js">
<script type="text/javascript" src="http://dev.selfcheck.vudat.msu.edu/_javascript/jquery.form.js">
<script type="text/javascript" src="http://dev.selfcheck.vudat.msu.edu/_javascript/qtip/jquery.qtip.min.js">
<link href="/_css/ui/ui.core.css?mod=1315947279" type="text/css" rel="stylesheet">
<link href="/_css/ui/ui.theme.css?mod=1315947280" type="text/css" rel="stylesheet">

Ответы [ 5 ]

14 голосов
/ 31 октября 2011

jQuery UI и jQuery должны быть загружены в определенном порядке:

<script src="jquery.js">...
<script src="jquery-ui.js">...

Убедитесь, что вы включили jQuery UI после jQuery.

4 голосов
/ 17 января 2017

У меня была та же проблема, и это было потому, что в нижней части страницы был включен другой файл js, который имел некоторые функции jQuery.Когда я переместил это в верхнюю часть страницы, над моими включениями jQuery и jQuery-UI все отлично работает.

4 голосов
/ 02 августа 2015

Так что не уверен, поможет ли это кому-нибудь, но я столкнулся с подобной ситуацией, которую мне удалось решить. Так что, похоже, это происходит, когда либо

a) неправильный порядок загрузки jQuery-ui и jQuery.

b) jQuery включается более одного раза или включены разные версии.

Опция "b" произошла со мной, потому что я использовал шаблон начальной загрузки, где jQuery включен в нижней части документа, что, конечно, является наилучшей практикой, в то время как код, который я тестировал, добавил другую версию jQuery в верхняя часть страницы.

Я вижу, что код этого вопроса выглядит так, как будто он содержит несколько дубликатов, поэтому я бы посоветовал очистить его для начала.

0 голосов
/ 31 марта 2017

я нашел новое решение, просто отредактируйте файл acf.php в строке 551

старый

 'deps'      => array('jquery', 'jquery-ui-core', 'jquery-ui-datepicker', 'underscore', 'select2'),

новый

 'deps'      => array('jquery', 'jquery-ui-core', 'jquery-ui-datepicker', 'jquery-ui-sortable', 'underscore', 'select2'),

я только что добавил jquery-ui-sortable в массив я надеюсь помочь кому-то спасибо.

0 голосов
/ 08 декабря 2016

Моя проблема была в том, что я использовал jQuery (...). Sortable () вместо $ (...). Sortable ()

Неконечно, почему это имело значение, но изменив его на $ исправил.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...