1

我有一大堆可选择的对象。

您可以单击它们,然后将它们的 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 的人来说,这一定很容易解决。

4

1 回答 1

1

我解决了我自己的问题。

当你现在它时,这很容易。

查看并节省一些时间:

        {
            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();
             }
于 2013-02-07T14:34:07.160 回答