2011-01-04 6 views
0
$("div.square").droppable({ 
     accept: '.white', 
     drop: function (event, ui) 
     { 
      $to = "#" + $(this).attr('id'); 
      alert(to); 
      $.post(
     "/Game/AddMove", 
     { 
      from: $from, 
      to: $to, 
      GameID: $("#gameID").val() 
     }); 
     } 
    }); 

それはうまく動作しません。だから、AJAXにUI要素をドロップすることを呼び出すことは可能ですか?JQuery:ドロップ要素でajaxを呼び出す

問題は、それがさえはい、あなたは、ドロップのAJAX呼び出しをトリガーすることができ、

答えて

1

私は、変数toをドロップされた要素のID attrにしたいと思っています。私はあなたが$ fromの価値がどこから来ることを意図したのか分かりません。

ちょっとした注意 - $で始まる変数を使用しないことをお勧めします。特にjQueryではそうではありません。とにかく

、これを行う、削除されたオブジェクトにアクセスするには:他の言葉で

drop: function(event, ui) { 
    toStr = '#' + $(ui.helper).attr('id'); 
} 
  • を、ui.helperは、あなたのドロップ可能な上に滴下したHTMLオブジェクトです。

幸運。

+1

*「$で始まる変数は使用しないことをお勧めします。特にjQueryでは使用しないでください。非常に、非常に一般的なプラクティス。 '$ var = this = $(これ);ごとに1兆円があったとすれば、私は... –

+0

$で始まる変数の使用に関して、jQueryユーザーの間には既存の規約が存在するためです。多くのjQueryユーザーは$を使用して、jQueryオブジェクトを含むvarの前に$を付けて、DOMオブジェクトと区別します。たとえば、このページでは、規約はvar $ notifyObj = $( '#notify-container')となります。対var notifyObj = document.getElementById( '通知コンテナ'); – btx

0

をコントローラを呼び出していない、です。 (live example)

は、私が問題(詳細は下記)のカップルを参照してください。

$("div.square").droppable({ 
    accept: '.white', 
    drop: function (event, ui) 
    { 
     $to = "#" + $(this).attr('id');// <== 1. Implicit Global? 
     alert(to);      // <== 2. Syntax error 
     $.post(
      "/Game/AddMove", 
      { 
       from: $from,   // <== 3. Where does this come from? 
       to: $to, 
       GameID: $("#gameID").val() 
     }); 
    } 
}); 
  1. あなたはそれを宣言せずに$toを使用しているように見えます。 (表示されていないスコープ内に宣言されている場合は、それは問題ありませんが、それ以外の場合は、Horror of Implicit Globalsへの餌食になります(それはおそらく動作しないものです)。
  2. コードが爆発するはずです。ここではtoが定義されていない限りtoという変数はありません
  3. 変数$fromは引用符で囲まれたコードで定義されていません。もしそうなら、おそらく質問に言及する価値があるでしょう。

上記のどれも該当しない場合は、コードを歩いてください。最近のデバッガ。 Firefoxを使用している場合は、Firebugをインストールして使用してください。 ChromeやSafariを使用している場合は、Dev Toolsが組み込まれています(環境設定で有効にする必要があります)。 IEを使用する場合、IE8以降には組み込みのデバッガがあります。 IE7以前では、VS.Netの無料版を使用することができます。 Operaには、Dragonflyという組み込みのデバッガがあります。これらのすべてにおいて、dropハンドラの最初の行にブレークポイントを設定し、何がうまくいかないかを確認することができます。

関連する問題