我正在<li>
<ul>
之间进行排序,但当我尝试获取ui.item.attr("id")
时,我得到了未定义但其他变量运行良好,如$(this).attr('id')
和{{1但是我正在搜索从中拖出元素的'+ui.sender.attr('id')
的索引。
我的js文件:
<ul>
我的jsf代码:
$( init );
function init() {
$(".list-items").sortable({
connectWith: '.list-items',
items: "li:not(.item.new)",
placeholder: 'place-holder',
scroll: false,
tolerance: "pointer",update: function (event, ui) {
//alert($(this));
},
receive : function(e, ui) {
alert('zone : '+ ui.item.attr("id"));
alert('Where the item is dropped : '+$(this).attr('id')); // Where the item is dropped
alert('from where the item is dragged : '+ui.sender.attr('id')); // from where the item is dragged
if(ui.item.text()=="51173115") {
jConfirm('item '+ui.item.context.id+' capacite Cuisson epuise vous voulez continue comme meme ?', 'alerte', function(r) {
if(r)
{
}
else
{
$(ui.sender).sortable('cancel'); // refuse element to be dropped
}
}
}
}).disableSelection();
}
为什么我得到未定义的值以及如何获得此值?
答案 0 :(得分:3)
问题是ui.item
是对象的集合,因此您需要使用ui.item.context.id
来获取作为拖动元素的项的ID,如jQuery Sortable documentation中所指定的:
ui.item
输入:jQuery
表示当前拖动元素的jQuery对象
因此,您的案例ui.item
将是被拖动的<li>
,因为他们没有设置id属性ui.item.context.id
将始终为空。
如果您在li
上设置了ID,则可以访问它:http://jsfiddle.net/qj4GG/2/
你想要获得什么属性?你需要什么?
答案 1 :(得分:1)
你可以试试
ui.item.option.childNodes[0].parentNode.parentNode.attributes[2].value
只需将属性[]索引值更改为id的顺序。这里我在id之前有两个属性。
this._on( this.input, {
autocompleteselect: function( event, ui ) {
ui.item.option.selected = true;
alert(ui.item.option.childNodes[0].parentNode.parentNode.attributes[2].value);
this._trigger( "select", event, {
item: ui.item.option
});
},