2014-08-30 42 views
0

好的,這是基本的想法。我想有一個JavaScript激活另一個。這似乎是一個相當直接的想法。我有我的第一個js文件將變量設置爲1,並且我的第二個js文件以if語句開頭,如果該變量等於1,它將觸發。不幸的是,我不能爲我的生活弄清楚如何創建一個可以被這兩個文件讀取和修改的JS變量。在wordpress stack exchange site的一篇早期文章中,我讀到了你可以通過在wp_head中聲明一個變量來做到這一點。不幸的是,雖然functions.php文件運行正常,但我似乎無法訪問我創建的變量。我試過了wp_head.variable,它沒有定義。我只嘗試了未定義的變量名稱。我嘗試過定義它,但只是創建了該變量的本地版本。與另一個調用一個JavaScript函數

如果有更簡單的方法來觸發第一個腳本,請讓我知道。他們需要在不同的文件,因爲每個文件需要一個不同的PHP變量本地化。是的,第一個腳本的動作正確觸發。

的functions.php片段:

function my_js_variables(){ ?> 
<script type="text/javascript"> 
var activate = 0; 
</script> 
<?php 
} 

add_action ('wp_head', 'my_js_variables'); 

第一個腳本:

jQuery('#grab').click(function() 
{ 
    jQuery.ajax({ 
     url: my_ajax_script.ajaxurl, 
     data: ({action : 'get_my_option'}), 
     datatype: "json", 
     success: function(json){ 
     activate = 1; 
     } 
     }) 
     }) 

第二個腳本:

if (activate == 1) 
{ 
     alert('so far so good'); 
}; 
+1

你必須聲明變量*外*的功能。 – Pointy 2014-08-30 18:13:30

+0

或者把它放在'window' - 'window.activate = 1'上。請注意,使用全局進行同步,雖然必要性有時會出現問題,並且可能會造成維護問題。 – 2014-08-30 18:15:13

+0

如果它是JavaScript,那麼它的直接解決方案'全局變量',如果它介於.php之間,請嘗試在'session'中設置它 – Khaleel 2014-08-30 18:16:53

回答

0

我會與觸發,並結合事件的方法去:

首先腳本

jQuery('#grab').click(function() 
{ 
    jQuery.ajax({ 
     url: my_ajax_script.ajaxurl, 
     data: ({action : 'get_my_option'}), 
     datatype: "json", 
     success: function(json){ 
     $(document).trigger('custom_event'); 
     } 
    }) 
}) 

第二個腳本

$(document).bind('custom_event', function() { 
    alert('so far so good'); 
} 
相關問題