2014-02-14 55 views
0

我能夠註冊和排隊我自己的下載jquery-ui插件與控制檯上的錯誤關於它。 jquery-ui-core由於某種原因無法使用相同的方法加載。麻煩enqueueing內置jQuery UI腳本在WordPress中

控制檯也抱怨說我的$不是$(document).ready(function)初始jquery包裝函數。即使wp正在調用自己的內核版本的jquery,我也會得到這個結果。

狩獵文檔顯示,wp還包括jquery-ui腳本的各種各樣的。所以我走了那條路,但他們沒有被使用他們的手柄叫。

我做錯了什麼?

 wp_enqueue_script('jquery-core'); 
     //wp_register_script('jquery-core', get_template_directory_uri() . '/js/jquery.ui.core.min.js', array('jquery')); 
     wp_enqueue_script('jquery-ui-core'); 
     //wp_register_script('jquery-draggable', get_template_directory_uri() . '/js/jquery.ui.draggable.min.js', array('jquery')); 
     wp_enqueue_script('jquery-ui-draggable'); 
     //wp_register_script('jquery-droppable', get_template_directory_uri() . '/js/jquery.ui.droppable.min.js', array('jquery')); 
     wp_enqueue_script('jquery-ui-droppable'); 
     // wp_register_script('jquery-mouse', get_template_directory_uri() . '/js/jquery.ui.mouse.min.js', array('jquery')); 
     wp_enqueue_script('jquery-ui-mouse'); 
     // wp_register_script('jquery-sortable', get_template_directory_uri() . '/js/jquery.ui.sortable.min.js', array('jquery')); 
     wp_enqueue_script('jquery-ui-sortable'); 
     //wp_register_script('jquery-widget', get_template_directory_uri() . '/js/jquery.ui.widget.min.js', array('jquery')); 
     wp_enqueue_script('jquery-ui-widget'); 

目前,我有我的register_script函數調用評論指出,做工作的時候我加入了enqueue_script其句柄調用它,但控制檯被扔我的錯誤有關這些文件(從jQuery的UI下載)我的身影它的bc jquery沒有被識別,因此$沒有被定義的錯誤。

如果我首先使用wp_register_script調用腳本,它實際上會加載,但會引發很多指向jquery-ui庫的控制檯錯誤。最後,最後一個錯誤實際上是我的代碼,說$(...)。accordion();不是一個功能。我從jquery-ui演示中提取了這段代碼。我可以在jsfiddle中單元測試我的jquery-ui構建,並且這一切都很好。我沒有手動調用jquery-ui庫,因爲他們有一個下拉選擇它,但我丟棄了html和js演示代碼。

有什麼想法?

回答

1

有關$未定義的錯誤是因爲jQuery在WP中以無衝突模式加載。

替換:

$(document).ready(function(){ 

有了:

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

也只是爲了確保這是你的PHP與排隊掛鉤腳本里面的函數。

function wpse_load_js() { 
    wp_enqueue_script('jquery-ui-core'); 
    wp_enqueue_script('jquery-ui-draggable'); 
    wp_enqueue_script('jquery-ui-droppable');  
    wp_enqueue_script('jquery-ui-mouse'); 
    wp_enqueue_script('jquery-ui-sortable'); 
    wp_enqueue_script('jquery-ui-widget'); 
} 
add_action('wp_enqueue_scripts', 'wpse_load_js'); 
+0

感謝您的jQuery非衝突模式部分,修復了這一點。爲了調用腳本,我已經將腳本包裝在函數中,並且不會加載。我知道這個函數可以工作,但我正在修改一個工作主題,並在其中添加了這些腳本。 – appthat