1

JSP ページに次のものがあり、エラーが発生しています

Message: Object doesn't support this property or method

$("#projects").dataTable({

外すと

.makeEditable({
                   sAddURL: "addController"
                              });

js エラーはありません。この問題を解決するにはどうすればよいですか?

JS コード

$(document).ready(function () {
    $("#projects").dataTable({ // error here
        "bServerSide": true,
        "sAjaxSource": "mycontroller",
        "bProcessing": true,
        "sPaginationType": "full_numbers",
        "bJQueryUI": true
    }).makeEditable({
        sAddURL: "addController"
    });
});

そして、私は次のjsファイルを持っています

 <script src="scripts/jquery-1.4.4.min.js" type="text/javascript"></script>
 <script src="scripts/jquery.dataTables.editable.js" type="text/javascript">
 </script>
 <script src="scripts/jquery.jeditable.js" type="text/javascript"></script>
 <script src="scripts/jquery.validate.js" type="text/javascript"></script>
 <script src="scripts/jquery-ui.js" type="text/javascript"></script>

 <script src="scripts/jquery.js" type="text/javascript"></script>
 <script src="scripts/jquery.dataTables.min.js" type="text/javascript"></script>
4

3 に答える 3

6

おそらく 2 つの異なるバージョンを使用して、jQuery ライブラリを 2 回含めています。scripts/jquery-1.4.4.min.jsでありscripts/jquery.js、両方とも jQuery ライブラリです。

2 番目のインスタンスは最初のインスタンスを置き換えます。その過程で、最初のインスタンスに追加されたすべてのプラグインが失われます。最終的に dataTables プラグインだけにmakeEditableなると、呼び出しは機能しません。存在しないのはdataTableメソッドではありません。ステートメントがそこから始まるため、その行でエラーが報告されるだけです。

jQuery ライブラリの 2 番目のインクルードを削除します。jQuery ライブラリの 1.4.4 バージョンと互換性がない場合は、別のバージョンの dataTables プラグインが必要になる場合もあります。または、新しいバージョンの jQuery を使用してください。

于 2013-04-02T08:15:31.600 に答える
2

まあ、@Guffaはすでに十分に答えました。必要に応じて、彼の答えを受け入れることができます。:)

もう 1 つ追加したいのは、jQuery のバージョン間の競合です。これは、含まれている jQuery のバージョンと互換性のないプラグインを使用している場合に発生します (私にも起こりました)。jQuery.noConflict()を使用して、そのプラグインと互換性のある別の jQuery バージョンを追加できます。

于 2013-04-02T08:25:48.727 に答える
0

あなたが提供したものに基づいて、ロード$('#projects').dataTableされる前に実行されているとしか思えません。jquery.dataTables.min.js

于 2013-04-02T08:15:11.340 に答える