2

ワードプレスのスクリプトに問題があります。テーマフォルダーの functions.php にスクリプトを含めました

function my_scripts_method() {
   wp_register_script( 'my-js-file',
       get_template_directory_uri() . '/js/my-js.js',
       array( 'jquery' ),
       '1.0',
       false );

   wp_enqueue_script( 'my-js-file' );
}

add_action( 'wp_enqueue_scripts', 'my_scripts_method' );

私のdatepicker uiでいくつかの調整を加えた私のスクリプト。しかし、そのスクリプトは常に含まれており、日付ピッカーを含むフォームがページ上にない場合、「日付ピッカー」とそのメソッドがわかりません。ウェブは背景がなく、他の問題があります。

フォームの日付フィールドのクラスが存在するか、プラグイン全体(そのビジュアルフォームビルダー)がそのページにあるかどうかを確認できることがわかりましたが、機能しません。クラスが現在のページにない場合でも、Wordpress はそのスクリプトを処理しています。

私は多くのことを試しました

if ($(".visual-form-builder-container")){  

ただし、この要素が存在しないメイン ページにそのスクリプトをロードします。助けてください

これはそのスクリプトです:

if($(".visual-form-builder-container").length > 0) { <-- Im trying to stop that here

    jQuery(document).ready(function($) {
        $.datepicker.setDefaults({
                    firstDay: 1,
                    minDate: 0,
        });    
    });

}

編集:多分私は何かを見つけました。スクリプトに "if" を指定せずに Web サイトを開いて、Chrome コンソールを確認すると、Uncaught TypeError: Cannot call method 'setDefaults' of undefined というメッセージが表示されます。しかし、私はメソッドをチェックする関数を知りません....

4

1 に答える 1

0

わかりました、おそらくそれを解決しました。スクリプトに try と catch を追加しました (これが私のコードです)。

jQuery(document).ready(function($) {
   try{
     $.datepicker.setDefaults({
            firstDay: 1,
            minDate: 0,
     });     
     $( '#vfb-datum-75' ).datepicker({
            beforeShowDay:  ..........,
     }); 
   }catch(err){

   }    
});

だから今はうまくいきます.すべてがOKで何かが未定義のときは何もしません.とにかくあなたの助けに感謝します;)

于 2013-03-15T22:57:26.237 に答える