我使用jQuery UI .droppable
将元素放置到div。现在我需要防止如果它们不是空的,则将它放到类.box
的div上。防止下降到div如果它不是空的
我想:
if ($('.box').is(':empty')) {
$(".box").droppable({
});
}
但是,这使所有.box
申报单非可弃他们是否是空。
我使用jQuery UI .droppable
将元素放置到div。现在我需要防止如果它们不是空的,则将它放到类.box
的div上。防止下降到div如果它不是空的
我想:
if ($('.box').is(':empty')) {
$(".box").droppable({
});
}
但是,这使所有.box
申报单非可弃他们是否是空。
下面的代码将检查元素box
中是否有任何文本或其他元素。你可以尝试把文字或添加子元素,以该div可以肯定,它的工作:
if (!$('.box').text() && $('.box').children().length === 0) {
console.log("droppable");
/*$(".box").droppable({
// code here
});*/
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="box"></div>
因此,解决办法是:
$(".box").droppable({
accept: function() {
return $(this).find("*").length == 0;
},
drop: function(event, ui) {
var $this = $(this);
$this.append(ui.draggable.css({
top: 0,
left: 0
}));
}
});
也许尝试使用' .preventDefault()'方法。 [MDN](https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault) – PredatorIWD
上面的代码基本上说,如果任何'.box'有任何':empty'那么所有的'.box'都会被droppable ..你也许可以这样做 - >'$(“。box:empty”)。droppable({})' – Keith
@Keith不幸的是,你的代码和我的代码一样使用 – Igor234