我正在使用jqueryui可排序小部件。我需要获取当前拖动元素的数据属性。 $(this).data(' attribute_name')在这里不起作用。我也尝试了其他一些方法,但没有得到正确的结果。
HTML
<ul class="draggable-item" style="min-height:10px;">
<li data-parent="31" data-id="81" class="ui-state-default">Label</li>
<li data-parent="31" data-id="86" class="ui-state-default">Max Value</li>
<li data-parent="31" data-id="83" class="ui-state-default">Unit</li>
<li data-parent="31" data-id="84" class="ui-state-default">Warning Level High</li>
<li data-parent="31" data-id="85" class="ui-state-default">Warning Level Low</li>
</ul>
JS
$(document).ready(function() {
$(".draggable-item").sortable({
start: function( event, ui ) {
//Here i need to get current dragged element's 'parent' attribue.
//console.log(ui.item[0].attributes); - Here i got the entire attribute values in an array. But the order of the array is different in browsers.
},
}).disableSelection();
});
答案 0 :(得分:6)
尝试$(ui.item).data('attribute_name');
或$(event.currentTarget).data('attribute_name');
答案 1 :(得分:4)
我在UPDATE事件中使用:
CV_8UC1
答案 2 :(得分:2)
使用$(this)
将为您提供初始化sortable的元素。请参阅Sortable Documentation。当前可排序项存储在ui
对象中,您可以使用ui.item
访问它。
因此,您可以通过在ui.item
上应用函数或方法来访问当前可排序项的任何属性。更喜欢使用$(ui.item)
。
演示:http://jsfiddle.net/lotusgodkk/GCu2D/173/
$(document).ready(function () {
$(".draggable-item").sortable({
start: function (event, ui) {
var attr = $(ui.item).attr('data-parent');
},
}).disableSelection();
});