2013-07-05 91 views
2

我想使用jQuery UI的投擲的accept事件的功能,jQuery UI的 - 可放開接受事件功能(事件,UI)

我試圖調用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> 

回答

2

fine manual

接受其可拖動的元件由可投放接受

控件。支持

多種類型:

  • 選擇:一個選擇器,其指示可拖動元件被接受。
  • 函數:將爲頁面上的每個可拖動對象(作爲函數的第一個參數傳遞)調用的函數。如果應該接受可拖動,則函數 必須返回true

所以第一個參數accept回調是有問題的元素不是一個事件,也沒有第二個參數。

我想你想要更多的東西是這樣的:

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

這將只接受可放開的data-accept屬性相匹配的可拖動。

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

+0

棒極了!加工 – user007