Jquery UI可选-更改引发选定/未选定事件的dom对象

Jquery UI selectable - change dom obeject which fired selected / unselected event

本文关键字:对象 dom 事件 可选 UI Jquery      更新时间:2023-09-26

我有一大堆可选择的obejct。

您可以单击它们,然后将它们的id添加到表单中,当取消选择它们时,它将再次从表单中删除。

我有一个工作版本,直到我注意到有时如果你点击太快,id会被添加多次。

为了禁止这种情况,我在列表项中添加了一个类,以便将其分类为处理。

我的问题:

我如何获得一个指向DOM元素的指针,该元素是为了添加类而单击的

什么可以运行所有"选定",但会导致其他问题:

$( ".ui-selected", this ).each(function() {
 if($(this).hasClass('processing'))
 return;
 $(this).addClass('processing');
 });

我现在所拥有的-只是让元素触发事件。。。错误:

 $(".selectgroup").bind("mousedown", function(e) {
    e.metaKey = true;
   }).selectable( {filter: "li"},
        {
            stop: function(){
                // Add to Form
                $( ".ui-selected", this ).each(function() {
                if($(this).hasClass('processing'))
                return;
                $(this).addClass('processing');
                var itemid = $(this).attr("value");
                var formhtml ='<input type="hidden" name="tags[]" id="id'+itemid+'" value="'+itemid+'">';
                $("#tagform").append(formhtml);
                });
         },
        {
             unselected: function( event, ui ) {
                itemid = "#id" + ui.unselected.value;
                $('').removeClass('processing');
                alert(itemid);
                $(itemid).remove();
             }
        }.................................

对于适合jquery的人来说,这一定很容易解决。

我解决了自己的问题。

当你现在这样做的时候,这很容易。

查看并节省一些时间:

        {
            selected: function(event,ui){
                // Add to Form
                var item = $(ui.selected);
                if(item.hasClass('processing')){
                  alert("return");  
                  return;
                }
                item.addClass('processing');
                var itemid = item.attr("value");
                alert("S ID - " + itemid);
                var formhtml ='<input type="hidden" name="tags[]" id="id'+itemid+'" value="'+itemid+'">';
                $("#tagform").append(formhtml);

            }
        },
        {
             unselected: function( event, ui ) {
                itemid = "#id" + ui.unselected.value;
                $(ui.unselected).removeClass('processing');
                alert(itemid);
                $(itemid).remove();
             }