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

时间:2013-02-07 13:20:00

标签: javascript jquery jquery-ui

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

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

1 个答案:

答案 0 :(得分: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();
             }