0

私のスクリプトは維持するために大きくなりつつあり、その一部を別のファイルに移動したいのですが、それを機能させることができません。

私は次のものを持っています:

jQuery(document).ready(function ($) {

some code....

initEdit(theme, isAdmin, dataAdapterCustomers, dataAdapterShops, dataAdapterOrderStatus);

some more code.....

});

edit.js ファイルには次のものがあります。

function initEdit(theme, isAdmin, dataAdapterCustomers, dataAdapterShops, dataAdapterOrderStatus) {

        $("#dateEdit").jqxDateTimeInput({ 
            width: '200px', 
            height: '18px', 
            formatString: "yyyy-MM-dd",
            theme: theme  
        });

some more code.....

}

これを行うと、次のエラーが表示されます。

キャッチされていない TypeError: オブジェクト [オブジェクト DOMWindow] のプロパティ '$' は関数ではありません

initEdit 関数を次のように囲みました。

(function($) {
function initEdit(theme, isAdmin, dataAdapterCustomers, dataAdapterShops, dataAdapterOrderStatus) {

        $("#dateEdit").jqxDateTimeInput({ 
            width: '200px', 
            height: '18px', 
            formatString: "yyyy-MM-dd",
            theme: theme  
        });

some more code.....

}})(jQuery);

しかし、initEdit が見つからないというエラーが表示されます。

追加の .js ファイルを含めます。ファイルのソース コードを確認してクリックすると、ファイルが読み込まれるため、ページが読み込まれます。元の jQuery スクリプトは、php ファイル内のスクリプト タグ内にあることを付け加える必要があります。また、jQuery を noConflict モードで実行します。

メイン関数から呼び出される前に edit.js が実行される可能性はありますか?

どんな提案でも大歓迎です!

4

3 に答える 3

0

@32bitfloat に同意するには、.js ファイルを含める正しい順序が必要です。

初めてjqueryファイルを含める <script type="text/javascript" src="jquery.js">

次に、ファイルに関数が含まれていることを含めます <script type="text/javascript" src="function.js">

そして電話する

(function ($){ code here... })

于 2012-07-13T08:31:26.550 に答える
0

.js ファイルを含める順序は正しいですか? メインのjqueryfileが最初にロードされ、次にedit.js、そして関数を呼び出すコードがロードされていることを確認してください。エラーは、jquery-syntax がわからないようです。

于 2012-07-13T08:19:42.287 に答える
0

これを試して:

function initEdit(theme, isAdmin, dataAdapterCustomers, dataAdapterShops, dataAdapterOrderStatus) {

        jQuery("#dateEdit").jqxDateTimeInput({ 
            width: '200px', 
            height: '18px', 
            formatString: "yyyy-MM-dd",
            theme: theme  
        });
}
于 2012-07-13T08:18:25.437 に答える