ドラッグ アンド ドロップされたオブジェクトのメソッドを使用したいと考えています。
function Controller(){
$( "#container" ).droppable({
drop: function( event, ui ) {
var draggable = ui.draggable;
alert( "Dropped:" + draggable.attr('id'));
draggable.myMethod();
}
});
これがうまくいかない理由を説明していただけますか?アラートは、正しいオブジェクトがドロップされたことを示していますが、メソッドを使用できません。
オブジェクトは次のようになります。
function Icon(name) {
var name = name;
this.myMethod = function() {
alert("test")};
this.getInfo = function() {
var dataname = this.getName();
//BErtram
$("#" + dataname).draggable({ revert: "valid" });
//Bertram Ende
}
}
編集:
この方法でメソッドを呼び出すと:
drop: function( event, ui ) {
var draggable = ui.draggable;
alert(...);
var ic = new Icon("asdsa");
ic.myMethod();
},
それは機能しますが、ドラッグされたオブジェクトでメソッドを使用したいのですが、何らかの型キャストを行う必要がありますか?
編集: 回避策 最後に、ブール値を使用してドロップが成功したかどうかを確認し、ブール値が true の場合は draggable.stop でメソッドを呼び出すという回避策を使用しました。ブール値の状態は、ドロップが成功するとドロップ可能で true に設定され、draggable.start で false に設定されます。