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 に答える