jqueryui-Draggable不是一个函数吗?

jqueryui-Draggable不是一个函数吗?,jquery,draggable,Jquery,Draggable,我试图在页面上的某些div上使用draggable效果,但每当我加载页面时,都会收到错误消息: Error: $(".draggable").draggable is not a function 我环顾四周,似乎其他人也有这个问题,因为他们没有包含jQueryUIJavaScript文件,但我肯定有 以下内容位于我的页面的head标签中: <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.

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

Error: $(".draggable").draggable is not a function
我环顾四周,似乎其他人也有这个问题,因为他们没有包含jQueryUIJavaScript文件,但我肯定有

以下内容位于我的页面的head标签中:

<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>

有人能提出解决办法吗

谢谢你的建议

谢谢


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

嘿,这对我来说很有用(我无法使用您使用的谷歌API链接):


牛肉卷饼
asdasd
$(“.draggable”).draggable();

确保您拥有jQuery对象,而不是元素本身。如果你按类别选择,你可能得不到你想要的

打开控制台,查看选择器代码返回的内容。在Firebug中,您应该看到如下内容:

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

此代码将不起作用(您可以检入firebug jQuery.ui未定义):


请尝试使用以下代码:

<script src="http://code.jquery.com/jquery-1.4.2.min.js" type="text/javascript"></script>    
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js" type="text/javascript"></script> 
<script src="jquery-ui-1.8.1.custom.min.js" type="text/javascript"></script>

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

答:在jQueryTOOLS中,如果使用默认下载,jQuery“核心”也会被嵌入

当您加载jQuery和jQuery工具时,jQuery核心将被定义两次,并将“取消”任何插件DragTable(来自jQueryUI)就是这样一个插件


解决方案是在不使用jQuery“核心”文件的情况下使用jQuery工具,一切都会正常工作。

这可能对某些人有所帮助:

在我的例子中,我能够通过首先加载draggable所依赖的js文件来消除这个错误。它们是ui.mouse.js、ui.core和ui.widget 即 用户界面核心 高斯消元法 鼠标交互


确保加载依赖项的脚本标记位于可拖动的js加载标记之上。

jQuery工具和jQuery UI发生冲突,因为它们都声明了
jQuery.tabs
,并且冲突会阻止加载第二个(在本例中为jQuery UI)。这就是为什么您会得到一个
draggable不是函数的原因

这个问题的解决方案是创建一个自定义版本的jquerytools(from),而不使用tabs功能


有关此处发现的冲突的信息:

一个常见的原因是,如果在加载jquery之后没有加载jqueryui

例如:

<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>

编辑。 用和的适当或最新值替换每个库的版本号

如果这不能解决问题,请查看许多其他答案中的建议。

而不是

<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>

使用


您可以导入这些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>

如果两次包含普通jquery库,也会导致此问题。在我的身体和头脑中,我有两次这样的经历


在我尝试使用jquery UI之前,它从未引起任何问题。

导致此错误的原因通常是因为您可能正在使用引导框架,并且已经在其他地方包含了jquery文件,可能位于结束正文标记的头部或正上方,在这种情况下,您所需要做的就是将jquery ui文件包含在任何有jquery文件的地方,或者包含在这两个地方,这样就可以了

  <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js" type="text/javascript"></script>


只要在导入jquery文件的任何位置包含上述jquery ui脚本以及其他引导依赖项即可。

确保代码遵循以下顺序-


我有同样的问题是因为另一个原因,我的眼睛需要一个小时才能找到答案。 我复制粘贴了加载jquery的脚本标记:

<script src="**https**://code.jquery.com/jquery-3.2.1.min.js"></script>
<script src="**http**://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>


我的网站在从移动浏览器访问时使用了https,并且拒绝在没有https的情况下加载jquery ui。

如果您正在开发Ionic应用程序,请确保在Ionic.bundle.js之前包含jquery和jquery ui

为了这么琐碎的事情浪费了这么多时间:(

  • 安装

    使用

    npm安装--保存jquery ui dist

    jawn add jquery ui dist

  • 将其导入应用程序代码中

    导入'jquery ui dist/jquery ui';

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


  • 我把你的问题和另一个问题都讨论了一遍。
    最后,以下答案帮助我理清了问题:

    为了摆脱:

    $(“.draggable”)。draggable不再是一个函数

    我必须将指向Javascript库的链接放在脚本标记的上方我希望能够工作

    我的代码:

    <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.min.css"/>
    <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js" />
    <script type="text/javascript" src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" />
    
    <script>
        $(function(){
            $("#container-speed").draggable();
        });
    </script>
    
    <div class="content">
        <div class="container-fluid">
            <div class="row">
                <div class="rowbackground"style="width: 600px; height: 400px; margin: 0 auto">
                    <div id="container-speed" style="width: 300px; height: 200px; float: left"></div>
                    <div id="container-rpm" style="width: 300px; height: 200px; float: left"></div>
                </div>
            </div>
        </div>
    </div>
    
    
    $(函数(){
    $(“#容器速度”).draggable();
    });
    
    我在我的_layoutMVC页面底部发现了这个垃圾,我通过chromes调试器(网络部分)在同一文件顶部的jquery/jqueryui部分之后加载了jquery 1.10.2。当我删除所有这些时,.sortable和.draggable开始工作

    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)
    

    你有这个问题的网页链接吗?没有,它只是在我的本地机器atm+1上,虽然这不是我问题的确切解决方案,但它引导我找到答案。谢谢。2017年,这对我有帮助。谢谢。对不起,我不知道这个答案是什么意思。我已经按照这个特定的顺序加载了jquery.min.js和jquery-ui.min.js。我不知道现在,jqueryTOOLS是什么,我也不使用它。请参阅下面问题中的“quic”部分
    <script src="**https**://code.jquery.com/jquery-3.2.1.min.js"></script>
    <script src="**http**://code.jquery.com/ui/1.12.1/jquery-ui.min.js"></script>
    
    <link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.min.css"/>
    <script type="text/javascript" src="https://code.jquery.com/jquery-1.12.4.min.js" />
    <script type="text/javascript" src="https://code.jquery.com/ui/1.12.1/jquery-ui.min.js" />
    
    <script>
        $(function(){
            $("#container-speed").draggable();
        });
    </script>
    
    <div class="content">
        <div class="container-fluid">
            <div class="row">
                <div class="rowbackground"style="width: 600px; height: 400px; margin: 0 auto">
                    <div id="container-speed" style="width: 300px; height: 200px; float: left"></div>
                    <div id="container-rpm" style="width: 300px; height: 200px; float: left"></div>
                </div>
            </div>
        </div>
    </div>
    
    @Scripts.Render("~/bundles/jquery")
    @Scripts.Render("~/bundles/bootstrap")
    @RenderSection("scripts", required: false)