ドラッグ/ドロップ用の単純な 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')
これは私の特定のケースでのみ機能し、おそらく「ドラッグ可能な」ブロックも含める必要があると思いますが、今のところ機能します。