未捕获的类型错误:$(...).draggable 不是函数

zou*_*ane 5 jquery jquery-ui draggable typeerror

大家好,我正在尝试制作一些可拖动的 div,并且我已经成功地使用 jquery-ui 做到了这一点。我还有一个脚本可以删除 2 个 div 并将它们组合成一个(就像它们已合并在一起一样)但是当我在新的“合并”div 上调用可拖动函数时,我得到的错误是标题...所以问题是什么 ?.draggable 函数怎么可能在一个地方工作而不是在另一个地方(在同一个文件上)!

这是可拖动的功能:

function drag($class){
$("."+$class).draggable({
containment: ".tab-content",
grid: [ 3, 3 ],
zIndex:100,
obstacle: "#nothere",
preventCollision: true,
drag:
function(){
    $(".test").css("background-color","red");
    $(this).css("background-color","green");
    }

});
} 
Run Code Online (Sandbox Code Playgroud)

首先我为测试类调用它,它完美地工作,没有错误

drag("test");
Run Code Online (Sandbox Code Playgroud)

但是当我在合并函数中再次调用它时,它返回错误:Uncaught TypeError: $(...).draggable is not a function

drag("test:not(.ui-draggable)");
Run Code Online (Sandbox Code Playgroud)

js文件被正确加载:

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

小智 3

我知道这是一个老问题,但因为我遇到了同样的问题并且找不到答案......

我包含了所有正确的脚本,检查了链接是否有效等,但它仍然无法正常工作。

然后,我将脚本引用移动到调用 .draggable 的代码的正上方,并且......它工作得很好。

<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 type="text/javascript">
            $(function () {
                $(".regionStyle li").draggable();
                $(".regionStyle").droppable({
                    drop: function (event, ui) {
                        $(this)
                        .addClass("ui-state-highlight")
                        .find("p")
                        .html("Item Dropped!");
                    }
                });
            });
Run Code Online (Sandbox Code Playgroud)