如何使用Jquery UI可选择查找所选元素
我正在寻找关于事件和ui对象的jQuery可选事件的信息:“选择”和“开始”作为参数。 我在文档中找不到这个并且通过属性循环没有帮助。
$('#content_td_account').selectable({ filter: 'li:not(".non_draggable")', selecting: function(event, ui) { } });
具体来说,我想找到正在选择的元素并检查它们以查看它们的父元素是否相同。 我假设这将在ui对象的某些地方。
选择元素后,将添加ui-selected
类。
所以你可以用$(".ui-selected")
获得所有选中的元素
这可能不完全正常,但我认为这个想法是这样的:
$('#content_td_account').selectable({ filter: 'li:not(".non_draggable")', selecting: function(event, ui) { var p = $(this).parent(); $(".ui-selected").each(obj, function() { if(obj.parent() == p) { // get rad } }); } });
您必须使用为组选择中的每个选定项触发的选定和未选定事件。
var selected = new Array(); $("#selectable").selectable({ selected: function(event, ui){ selected.push(ui.selected.id); }, unselected: function(event, ui){ //ui.unselected.id } });
通过使用:last
或:first
,选择不是第一个选择,而是第一个按照li
顺序
这是我管理的解决方案:
HTML
在这段代码中,我给了li
一个id和一个值,从而使它们可用于选择事件的ui
属性
JAVASCRIPT
//A place to put the last one var last_selected_value; var last_selected_id; $( ".selectable" ).selectable({ selecting: function(event, ui) { //In the selection event we can know wich is the last one, by getting the id on //the ui.selecting.property last_selected_value = ui.selecting.value; last_selected_id = ui.selecting.id; }, stop: function(event, ui) { //Here the event ends, so that we can remove the selected // class to all but the one we want $(event.target).children('.ui-selected').not("#" + last_selected_id) .removeClass('ui-selected'); //We can also put it on a input hidden $( "#roles_hidden" ).val(last_selected_value); } });
这将解决您的问题:
You've selected: none.
查看http://jqueryui.com/demos/selectable/#serialize了解更多信息
该事件中的ui论证是对elemenent的引用,如果是所选事件ui.selected事件将是elemen,如果它是unselect unselected.ui ….. etc