This question already has answers here:
jQuery UI - Draggable is not a function?

(17个答案)


4年前关闭。




大家好,我正在尝试使某些div可拖动,并且我设法使用jquery-ui做到了这一点。我也有一个脚本,删除了2个div并将它们合并为一个(例如,如果它们已经合并在一起),但是当我在新的“合并”的div上调用draggable函数时,得到的错误是标题...所以问题是什么 ? .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");
    }

});
}

首先,我将其称为测试类,它完全可以正常工作且没有错误
drag("test");

但是当我在合并函数中再次调用它时,它返回错误:
未捕获的TypeError:$(...)。draggable不是函数
drag("test:not(.ui-draggable)");

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>

最佳答案

我知道这是一个老问题,但是由于我遇到了同样的问题,所以找不到答案...

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

然后,我将脚本引用移到了调用.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!");
                    }
                });
            });

关于jquery - 未捕获的TypeError : $(. ..)。draggable不是函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32219513/

10-12 13:02