如何使用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

 
  1. First Selectable
  2. Second Selectable

在这段代码中,我给了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.

  1. Item 1
  2. Item 2
  3. Item 3
  4. Item 4
  5. Item 5
  6. Item 6

查看http://jqueryui.com/demos/selectable/#serialize了解更多信息

该事件中的ui论证是对elemenent的引用,如果是所选事件ui.selected事件将是elemen,如果它是unselect unselected.ui ….. etc