2013-03-15 27 views
2

我有一個WordPress的腳本的問題。我已經包括在主題文件夾WordPress的使用腳本只有當類存在(或方法)

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'); 

在functions.php的腳本,我在我的日期選擇器UI一些調整腳本。但是,該腳本始終包含在內,並且當datepicker不在頁面上時,它不知道「datepicker」及其方法。網站比沒有背景和其他問題。

我想通了,我可以檢查,如果表單類的日期字段存在或整個插件(其可視化表單生成器)是在該頁面上,但它不起作用。即使該類不在當前頁面上,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, 
     });  
    }); 

} 

編輯: 也許我發現了什麼。當我打開我的網站沒有任何「如果」在我的腳本,並檢查鉻控制檯,有:未捕獲TypeError:不能調用undefined的方法'setDefaults' 因此,如果我可能需要類似的東西:如果是方法定義,工作,但我不知道任何功能,檢查方法....

+0

嘗試if($(「yourselector」).length> 0){} ?? – 2013-03-15 19:53:19

+0

仍然這樣做。我沒有檢查課程的問題 - 這是有效的,但是當這個課程存在於網頁的一個頁面上時,它在所有地方都使用這個scritp – 2013-03-15 20:02:07

+0

是的,但是您的my_scripts_method()實際上是註冊腳本,那就是你想停止什麼,對吧? – 2013-03-15 20:04:07

回答

0

好吧,一個可能解決了它。 我只是說盡量和捕捉到腳本(這裏是我的代碼):

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

    }  
}); 

所以現在它的工作原理,當一切正常,當事情是不確定的,它會做什麼和那好 反正感謝你的幫助;)

相關問題