jQuery UI拖放不起作用

时间:2012-09-17 20:13:58

标签: jquery jquery-ui

我正在使用Jquery UI进行一些可拖动的实验,但目前我的应用程序无法运行,我不明白为什么。这是代码:

<html>
<head>

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

<script type="text/javascript">

$(".productItem").draggable({
    helper: 'clone',
    handle: "productItem"
});

$("#basket").droppable({
    accept: ".productItem",
    drop: function(event, ui){
        $("<div></div>")
            .html(ui.draggable.text())
            .appendTo($(this));
    }
});


</script>
</head>

<body>

<h2>Products</h2>
<div id="list">
<div class="productItem">product 1</div>
<div class="productItem">product 2</div>
<div class="productItem">product 3</div>
</div>

<hr/>

<h2>Basket</h2>
<div id="basket" style = "height: 100px; border: 1px solid red;">

</div>

</body>
</html>

这段代码在JsFiddle中令人担忧,但我似乎无法使它在chrome中运行,所以我认为这是因为jQuery包含。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:3)

将jQuery代码包装在文档就绪块中:

<script type="text/javascript">
$(document).ready(function() {
    $(".productItem").draggable({
        helper: 'clone',
        handle: "productItem"
    });
    $("#basket").droppable({
        accept: ".productItem",
        drop: function(event, ui) {
            $("<div></div>").html(ui.draggable.text()).appendTo($(this));
        }
    });
});​
</script>

如上所述,代码将在相关元素加载之前尝试执行。

答案 1 :(得分:-1)

找到答案,问题是我使用的是jQuery 1.8.0,不支持jQuery UI,我改为jQuery 1.7.2,现在它运行得很好。