2

我想在 jQuery UI droppableaccept事件中使用一个函数,

我试图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>
4

1 回答 1

2

来自精美手册

接受

控制 droppable 接受哪些可拖动元素。

支持多种类型:

  • Selector:一个选择器,指示接受哪些可拖动元素。
  • Function : 为页面上的每个可拖动对象调用的函数(作为第一个参数传递给函数)。true如果应接受可拖动对象,则该函数必须返回。

所以accept回调的第一个参数是有问题的元素而不是事件,并且没有第二个参数。

我想你想要更像这样的东西:

accept: function(el) {
    return $(el).is($(this).data('accept'));
}

那将只接受与 droppable 的data-accept属性匹配的可拖动对象。

演示:http: //jsfiddle.net/ambiguous/8jyhu/1/

于 2013-07-05T04:58:05.023 回答