2016-03-15 71 views
0

我已經瀏覽了幾個Q & A有關將腳本(包括jQuery)排入Wordpress的困難,並且大多數似乎涵蓋了根本找不到腳本的麻煩。變量問題和事件監聽器問題:WordPress中的jQuery入隊腳本

我很確定我破解了這個螺母好,我的腳本似乎找到並加載正確,但他們不像傳統意義上的行爲。

這裏是我放在我的functions.php文件中的子主題代碼的截段我創建:

<?php 
function adding_scripts() { 
    wp_register_script('custom_styles', get_template_directory_uri() . '/style.css'); 
    wp_register_script('custom_scripts', get_stylesheet_directory_uri() . '/jQuery_scripts.js.php', array('jquery')); 
    wp_enqueue_script('custom_scripts'); 
    wp_enqueue_script('custom_styles'); 
} 
add_action('wp_enqueue_scripts', 'adding_scripts'); 
?> 

這已經成功添加到隊列我的自定義CSS &在一定程度上我的自定義jQuery的.. 。但jQuery沒有按預期工作。編碼是基本的,與我的能力一致,但應該工作。

必須有一些特殊的WordPress noConflict「東西」我很想念

jQuery(document).ready(function($) { 
      var variable1 = $(".element1").width(); 

      $(".element3").css({"width":variable1+"px"}); 
      $(".element4").click(alert(variable1)); 
}); 

不被創建的變量,這是第一個問題。

我最初創建的'click'事件用於測試以查看變量是什麼,並發現好奇的東西。當頁面加載時,點擊甚至不點擊.element4

該警報中的回報是null

所以問題是:爲什麼變量沒有像通常那樣創建,爲什麼在.element4上沒有點擊事件觸發點擊偶數監聽器?

+0

什麼是文件'jQuery_scripts.js.php'的頭文件'Content-Type'? – Jevuska

+0

@Jevuska - 我沒有任何頭文件。我推斷這可能是我的問題的根源? –

+0

我只是試圖添加這個'頭'無濟於事: '<?php /*輸出jQuery */ header('Content-Type:text/javascript'); ?>' –

回答

0

好吧,幸運的是,在我將腳本排入腳本後大約8-10小時後,出於未知原因(緩存?),最終創建了變量。我的警報測試確實返回了元素的寬度。

但是,正如評論中所述,我的click();仍然是自發地觸發,沒有點擊。

作爲一個測試,我改爲.on("click",function(){});,這似乎工作正常。我猜想在Wordpress中安裝的jQuery庫並不完全一樣,就像連接到jQuery或Google中的遠程託管的jQuery庫一樣。

無論如何,目前沒有進一步的問題,雖然我只有一半回答我自己的問題,但由於我首先不知道問題的根本原因,我估計一半已經足夠接近。