我想在jQuery UI droppable accept
事件中使用一个函数,
我试图在该函数中调用ui.draggable
。
我想要ui.draggable
的数据属性值。但它说ui
没有定义。
访问ui.draggable
这是我的代码
jQuery( "#dropable" ).droppable({
activeClass: "active",
accept:function(event, ui) {
return ui.draggable.data('accept');
},
hoverClass: "hover",
drop: function( event, ui ) {
// my function
}
});
我为什么要这样做?
accept
事件类存储在拖动的元素中,如:
<a data-accept=".drop">This will be dragged</a>
答案 0 :(得分:2)
来自fine manual:
接受强>
控制droppable接受哪些可拖动元素。
支持多种类型:
- 选择器:一个选择器,指示接受哪些可拖动元素。
- 功能:将为页面上的每个可拖动函数调用的函数(作为函数的第一个参数传递)。功能 如果应该接受拖动,则必须返回
true
。
因此accept
回调的第一个参数是问题中的元素而不是事件,并且没有第二个参数。
我想你想要更像这样的东西:
accept: function(el) {
return $(el).is($(this).data('accept'));
}
这只会接受与droppable的data-accept
属性匹配的可拖动。