你怎么说:在这段代码的情况下不是(这个):
$(".draghandle").droppable({
accept: ".draghandle:not(this)"
drop: function ( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
.find( "p" )
.html( "Dropped!" );
}
});
你会看到accept选项旁边的选择器可能无效,虽然我没有检查过,但我想知道你是否有解决方案来验证它?我还没有找到一个,但如果你有一个改变代码的另一部分的解决方案,不要气馁,我只需要修复。 以下是我正在尝试扩展的类似问题:jQuery: exclude $(this) from selector 这里是我正在使用的主要代码的链接:http://jqueryui.com/demos/droppable/#accepted-elements
答案 0 :(得分:3)
您可以将jQuery列表作为accept参数传递,而不仅仅是选择器。在以下演示中,我将所有.ui-widget-content
个元素设为droppable ,而除#draggable
之外的其他元素。 (颠倒原来的jQuery UI网站演示)。我传递给accept
的参数是$(".ui-widget-content").not("#draggable")
。
http://jsfiddle.net/5TZ7b/
http://jsfiddle.net/5TZ7b/show
$(function() {
$( "#draggable, #draggable-nonvalid" ).draggable();
$( "#droppable" ).droppable({
accept: $(".ui-widget-content").not("#draggable"),
activeClass: "ui-state-hover",
hoverClass: "ui-state-active",
drop: function( event, ui ) {
$( this )
.addClass( "ui-state-highlight" )
.find( "p" )
.html( "Dropped!" );
}
});
});
您可以使用以下内容作为传递给accept
的参数。
$(".draghandle").not(this)