0

ドラッグ/ドロップ用の単純な jQuery ルーチンがあります。最近 1.7.2 から 1.8.21 にアップグレードしましたが、アイテムをドロップすると、「Uncaught TypeError: Cannot call method 'search' of undefined」というエラー メッセージが表示されます。

検索しても出てこなかったので、どなたか見たことのある方がいらっしゃれば幸いです。

コードは次のとおりです。

$("#frame").droppable({
    drop: function(ev, ui) {
        if (ui.helper.attr('id').search(/drag[0-9]/) != -1){
            counter++;
            var element=$(ui.draggable).clone();
            element.addClass("tempclass");
            $(this).append(element);
            $(".tempclass").attr("id","sig_"+counter);
            //$(this).css('z-index', 100+counter);
            $("#sig_"+counter).removeClass("tempclass");
            var x = event.pageX - $(this).offset().left + 4;
            var y = event.pageY - $(this).offset().top + 4;
            $(this).find("input").val(x+","+y);
            $("div#stop").text("STOP: \nLeft: "+ x + "\nTop: " + y);
            //Get the dynamically item id
            draggedNumber = ui.helper.attr('id').search(/drag([0-9])/)
            itemDragged = "dragged" + RegExp.$1
            //console.log(itemDragged)

            $("#sig_"+counter).addClass(itemDragged);
        }
    }
});

jQuery バージョン: 1.7.2 jQuery-UI バージョン: 1.8.21 ブラウザ: Chrome 20.0.1132

更新: 「機能する」ものを見つけたようですが、既存のアイテムを使用しているため、適切ではないと感じています。(コピーしようとしましたが、うまくいきませんでした。) 失敗する同じコードを含む 2 行を変更しました。

ui.helper.attr('id')

ui.draggable.attr('id')

これは私の特定のケースでのみ機能し、おそらく「ドラッグ可能な」ブロックも含める必要があると思いますが、今のところ機能します。

4

0 に答える 0