jQuery UI - droppable接受事件函数(event,ui)

时间:2013-07-05 04:49:05

标签: jquery jquery-ui

我想在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>

1 个答案:

答案 0 :(得分:2)

来自fine manual

  

接受

     

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

     

支持多种类型:

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

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

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

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

这只会接受与droppable的data-accept属性匹配的可拖动。

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