2016-08-04 7 views
0

Wordpress 4.5.3でjQuery UIダイアログを実装しようとしていますが、時間は約半分です。私は次のエラーを取得する残りの時間:jQuery UIダイアログ - WordpressのキャッチされていないTypeError

Uncaught TypeError: jQuery(...).dialog is not a function lwr_jquery_dialog.js(2) 

私は次のようにスクリプトをキューに入れ、そして、彼らはページ上の正しい順序でロード確認しました:lwr_jquery_dialog.jsで

function enqueue_jquery_dialog() { 

    wp_enqueue_script('jquery-ui-dialog', false, array('jquery','jquery-ui-core'), 
     false, true); 
    wp_enqueue_script('lwr_dialog', get_stylesheet_directory_uri() . 
     '/js/lwr_jquery_dialog.js', array('jquery-ui-dialog'));   
} 
add_action('wp_enqueue_scripts', 'enqueue_jquery_dialog'); 

I持っている:

jQuery(document).ready(function() { 
    jQuery('#dialog').dialog({ 
     width: 600, 
     modal: true, 
     resizable: false, 
     draggable: false, 
    }); 
}); 

そしてここでは、実際のダイアログ機能はのfunctions.phpに

です
+0

半分の時間が鳴り、そしてちょうどそうに何が起こるのいずれかそうでないジャストインタイム2回目以降の負荷をキャッシュすることがそれが初めての問題であることに注意してください。スクリプトの順序を確認し、jquery-UIがメインのjqueryライブラリの後にロードされていることを確認します。それがそうでなければ、コードをもう一度見て、それについて心を開いてください。もしそうなら、私に知らせて、私は答えを出します! – Jonathan

+0

add_actionの優先度を変更しようとしましたか? – j08691

+0

jQueryを$ –

答えて

2

更新1jquery-ui-dialogスクリプトがありません。代わりにこれを試してみてください:

add_action('wp_enqueue_scripts', function() 
{ 
    $theme_uri = get_stylesheet_directory_uri(); 

    wp_enqueue_script('lwr-jquery-dialog', $theme_uri . '/js/lwr_jquery_dialog.js', 
['jquery-ui-core', 'jquery-ui-dialog'], false, true); 
}, 10, 0); 

ソースファイルの値としてfalseを使用しているので、依存関係が正しくエンキューされていません。詳細については、wp_enqueue_script()関数の$srcパラメータを参照してください。

これを試してみてください:スクリプトが正しい順序ではないよう

add_action('wp_enqueue_scripts', function() 
{ 
    $theme_uri = get_stylesheet_directory_uri(); 

    wp_enqueue_script('lwr-jquery-dialog', $theme_uri . '/js/lwr_jquery_dialog.js', 
['jquery-core', 'jquery-ui-core'], false, true); 
}, 10, 0); 
+0

に変更してみてください。失敗した場合でも、ファイルが正しい順序でロードされていることをhtmlソースで確認しました。私はこれを試しましたが、追加運がありません。 – dpruth

+0

@dpruth私はテストを行い、答えを更新しました。今回はうまくいくと思っています。 – MinhTri

+0

上記のスクリプトにはjquery-ui-dialogが含まれています。しかし、私はwp_enqueue_script関数をあなたの提案( "FALSE"を取り出して)を更新しました、そして、今働いているようです。ありがとう! – dpruth

関連する問題