1

これはよくある話題のようですが、この特定のバージョンを投稿している人を見たことがありません。

<script>
$(document).ready(function() {
   $("#somebutton").click(function() {
       $.get("someurl", function(data){
          $("#PartsDialogDiv").html(data);
          $("#PartsDialogDiv").dialog("open");
       });
    });


   $("#PartsDialogDiv").dialog({
           autoOpen: false,
           width: 600,
           resizable: false,
           modal: true,
           buttons: {
               "Use Part": function() {
                   $.get("someurl", function(data){
                       $("#AnotherDIV").html(data);
                   });
                   $(this).dialog("close");
               },
               "Cancel": function () {
                   $(this).dialog("close");
               }
           }
     });
});
</script>
<div id="PartsDialogDiv"></div>
<div id="AnotherDIV"></div>

「Use Part」ボタンアクションを実行した後に .dialog("open") を呼び出すボタンを押すと、開くことができません。実際、次のように述べています。

Object doesn't support this property or method

「Use Part」を最初に押したときのコールバックが、PartsDialogDiv のダイログ設定を維持できず、div でその jquery UI メソッドを呼び出すことができることを認識できなくなったような気がします。

すべてが $(document).ready() にラップされているため、「パーツを使用」ボタン関数内に配置せずに、その div をダイアログに再初期化する方法がわかりません。

誰かがこれを経験し、これを処理する方法について何か良いヒントやアドバイスを持っていますか?

前もって感謝します!

これは MVC3 ですが、関連性があるかどうかは完全にはわかりません。

ANSWER (これが投稿されてから 8 時間後まで自分の質問に答えることができないため): どうにか解決できました。ジェンとジョージ・カミンズはどちらも、私の部分的な見方が悪いという結論に私を導きました。

私の部分的な見解では、これらのスクリプトが含まれています:

<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")"
       type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.min.js")" 
       type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" 
       type="text/javascript"></script>
<script src="@Url.Content("~/Scripts/jquery.unobtrusive-ajax.js")" 
       type="text/javascript"></script>

それらは自動生成された (または何らかの理由でやみくもに含めた) ものであり、不要です。私はそれらを削除し、すべてが意図したとおりに機能します。

皆様、お忙しい中ありがとうございました!

4

1 に答える 1

0

「パーツを使用」ボタンのクリックが発生したときに、何かが「#PartsDialogDiv」を変更しているように聞こえます。「// Do something」の代わりにコードを確認する必要がありますが、そのコードを調べて、必要に応じて変更することができます。具体的には、.destroy() または .disable() の呼び出しを探します。

于 2011-05-17T18:54:33.297 に答える