jQuery UI - Draggable不是一个函数?

Dan*_*Dan 53 jquery draggable

我试图在页面上的某些div上使用可拖动效果,但每当我加载页面时,我都会收到错误消息:

Error: $(".draggable").draggable is not a function
Run Code Online (Sandbox Code Playgroud)

我已经看过它似乎其他人有这个问题因为他们没有包含jQuery UI javascript文件,但我肯定有.

以下是我页面的标题内:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js" type="text/javascript"></script>    
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.1/jquery-ui.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

谁有人建议解决方案?

任何建议表示赞赏

谢谢.

快速编辑,我也有jquery工具js包含在页面的头部,如果我删除它工作正常.有没有人设法让这两个人一起工作?

int*_*cho 42

如果您不加载jqueryui以及jquery也会发生此问题

例如:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js" type="text/javascript"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js" type="text/javascript"></script>
Run Code Online (Sandbox Code Playgroud)


Ide*_*ram 37

问题发布4年后,但也许会帮助遇到此问题的其他人.答案已经发布在StackExchange的其他地方,但我丢失了链接,很难找到.

解答:在jQueryTOOLS中,如果使用默认下载,jQuery'core'也会嵌入.

当你加载jQuery和jQuery工具时,jQuery核心被定义两次并且将"取消设置"任何插件.'draggable'(来自jQuery-UI)就是这样一个插件.

解决方案是使用没有jQuery'核心'文件的jQuery工具,一切都会正常工作.

  • 对不起,但我不清楚你对这个答案的意思.我按照这个特定的顺序加载了jquery.min.js和jquery-ui.min.js.我不知道jqueryTOOLS是什么,我也不知道. (7认同)

srg*_*bnd 16

  1. 安装jquery-ui-dist

    使用npm

    npm install --save jquery-ui-dist

    纱线

    yarn add jquery-ui-dist

  2. 将其导入您的应用代码中

    import 'jquery-ui-dist/jquery-ui';

    要么

    require('jquery-ui-dist/jquery-ui');


小智 8

确保您的代码遵循此命令 -

<script src="jquery.min.js"></script>
<script src="jquery-ui/jquery-ui.js"></script>
Run Code Online (Sandbox Code Playgroud)


小智 5

确保你有jQuery对象而不是元素本身.如果您按班级选择,您可能无法获得预期.

打开一个控制台,查看选择器代码返回的内容.在Firebug中,你应该看到类似的东西:

jQuery( div.draggable )
Run Code Online (Sandbox Code Playgroud)

您可能必须进入一个数组并获取第一个元素:$('.draggable').first()然后在该jQuery对象上调用draggable()并完成.


小智 5

你可以导入这些js文件。它对我来说很好。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>  
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js" ></script>
Run Code Online (Sandbox Code Playgroud)


Bar*_*der 1

嘿,这对我有用(我无法使用您正在使用的Google API链接来实现此功能):

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>Beef Burrito</title>
    <script src="http://code.jquery.com/jquery-1.4.2.min.js" type="text/javascript"></script>    
    <script src="jquery-ui-1.8.1.custom.min.js" type="text/javascript"></script>
    </head>
<body>
    <div class="draggable" style="border: 1px solid black; width: 50px; height: 50px; position: absolute; top: 0px; left: 0px;">asdasd</div>

    <script type="text/javascript">
        $(".draggable").draggable();
    </script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)