我正在使用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包含。有人可以帮帮我吗?
答案 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,现在它运行得很好。