2016-09-13 56 views
1

我正在嘗試加載我的CSS異步,因此我所做的是對所有css樣式執行的操作如下所示:我將它們加載爲media = none並且加載頁面後,我使用jQuery將attr值更改爲media = allWordPress jQuery僅在刷新後纔會觸發

問題,我不斷得到,我似乎無法解決的是,這隻適用於我刷新頁面後。在第一次加載時,我得到的是Uncaught ReferenceError: jQuery is not defined

此外,當我導航到下一頁時,我需要再次刷新jQuery才能觸發。

我在Word新聞工作,所以這是我在做什麼:

的functions.php

function wpic_theme_js(){ 
    wp_deregister_script('jquery'); 
    wp_deregister_script('jquery-migrate'); 
    wp_register_script('jquery', 'https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js', array(), '', false); 
    wp_enqueue_script('jquery'); 
    wp_enqueue_script('app_js', get_template_directory_uri() . '/js/app.min.js', array('jquery'), '', true); 
} 
add_action('wp_enqueue_scripts', 'wpic_theme_js'); 

在我jQuery腳本我有這樣的:

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

    jQuery('link[media="none"]').each(function(){ 
     jQuery(this).attr('media', 'all'); 
    }); 

也如你所知我有deregistered jquery-migrate出於同樣的原因我得到jQuery is not defined錯誤。

如果有人有這個解決方案,我將不勝感激幫助。

感謝

PS> 我正在進步一點點在這裏,我注意到,jQuery是不完全加載。看起來像jQuery庫和我的app.js文件幾乎完全相同的時間加載。所以,當它觸發jQuery是沒有定義尚未..

網址:http://iamcavic.com/

我得到它的工作,但我現在已經閃爍:(

+0

你在調用之前加載Jquery嗎? –

+1

@JotaGe你可以在他的代碼中看到他是... – Lee

+0

確保你的腳本應該被寫入/包含在jquery後 –

回答

0

嗯,這顯然是錯誤的做法所有的jQuery。在WordPress動作需要通過管理-ajax.php被轉移並引發。

它是由名字有點誤導,但這個文件是負責做AJAX請求傳遞給後臺/主題/。

一谷歌搜索: https://codex.wordpress.org/AJAX_in_Plugins

+1

我不遵循你爲什麼要鏈接到這篇文章,因爲我沒有在我的項目中的任何地方使用AJAX ?另外我的功能是網站的核心功能,不僅僅是管理區域。請澄清我是否誤解了你的答案。謝謝 – IamCavic

+0

由於您正在執行異步操作,因此會觸發內部WordPress過濾/限制。 WordPress不會允許你在我給你的方法之外觸發ajax請求。換句話說:你必須這樣做Ajax請求,沒有辦法 - 至少不是我所知道的。 –

+0

@ user2521387問題不要求ajax調用他只是運行一個簡單的jQuery –

相關問題