0

複数の画面(画面1〜6など)にJqueryモーダルポップアップを使用していますが、画面3だけでは機能しませんが、残りの画面では機能します.3つのレイアウトページがあります:Layout1、レイアウト 2、およびレイアウト 3。すべての .cshtml ページには Layout3 としてのレイアウトがあります。Layout3 には Layout2 としてのレイアウト ページがあり、Layout2 は Layout1 を使用します。

ボタン(6つの画面すべてに個別に存在する)がクリックされるたびに、「DeleteListByID()」が呼び出され、ポップアップが表示されます

モーダル ポップアップのコード、JavaScript および CSS ファイルは Layout3 にあります。

<script src="../../Scripts/ModalPopUp/jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="../../Scripts/ModalPopUp/jquery-ui-1.8.20.custom.min.js" type="text/javascript"></script>
<link href="../../Content/jquery-ui-1.8.20.custom.css" rel="stylesheet" type="text/css" />

    function DeleteListByID(controller, action, id) { 
           $("#DeleteRecord").dialog({ autoOpen: false, modal: true, closeText: "", resizable: false });
          //some code
}

<div id="DeleteRecord" class="DN">
    <p>
        '@Constants.Global.LayoutForWorkflow.DELETE_RECORD_MESSAGE'
    </p>
</div>

しかし、ある画面 (画面 3) で、「オブジェクトはこのプロパティまたはメソッドをサポートしていません」というエラーが表示されます。基本的に、メソッド 'dialog' が見つかりません。誰かがなぜこれが起こっているのか教えてもらえますか??

個々の画面に含まれるファイルはありません。すべて Layout3 にあります。

4

4 に答える 4

2

私はこれとまったく同じ問題を抱えていました。ソースを表示し、「jQuery」への参照を検索します。私のページの一番下に参考文献がありました。スクリプト参照も自分で含めました。

どうやら、Nuget パッケージまたはプロジェクトのセットアップ自体が原因で、次のことがありました。

@Scripts.Render("~/bundles/jquery")
@RenderSection("scripts", required: false)

これにより、jQuery への 2 番目のスクリプト参照がレンダリングされます。JQuery への 2 番目の参照がエラーの原因でした。

これらの 2 行を削除すると、準備完了です。

于 2012-11-20T16:16:13.207 に答える
1

関数がドキュメントの準備ができているときにのみ実行されることを確認してみましたか? .NET の AJAX の奇妙さは、JavaScript を実行しようとしたときに要素が読み込まれないことを意味している可能性があります。

$(document).ready(function() {

    function DeleteListByID(controller, action, id) { 
               $("#DeleteRecord").dialog({ autoOpen: false, modal: true, closeText: "", resizable: false });
              //some code
    }

})
于 2012-07-06T11:27:36.193 に答える
0

イベント処理については言及していませんが、クリックイベント関数が

$(".button").click(function(){
    // stuff to do
});

試す

$(".button").live("click", function() {      
    // stuff to do
});
于 2012-07-06T12:11:06.657 に答える
0

MVC 4 での私の問題は、jQuery UI ファイルが含まれていなかったことです。追加する

@Scripts.Render("~/bundles/jqueryui")

私の(_Layout.cshtml)ファイルにそれを修正しました。

編集:jQuery CSSも必要

@Styles.Render("~/Content/themes/base/css")
于 2012-11-27T10:05:06.260 に答える