2014-08-30 3 views
0

좋아, 다음은 기본적인 아이디어입니다. 나는 한 자바 스크립트가 다른 자바 스크립트를 활성화 시키길 원한다. 그것은 꽤 간단한 아이디어처럼 보입니다. 첫 번째 js 파일에 변수를 1로 설정하고 두 번째 js 파일에서 if 문으로 시작합니다. 변수가 1 인 경우 if가 실행됩니다. 불행히도 나는 내 인생에 대해 두 파일에서 읽고 수정할 수있는 JS 변수를 만드는 방법을 알 수 없다. 이전에 WordPress의 스택 교환 사이트에서 나는 wp_head에서 변수를 선언함으로써 그렇게 할 수 있다고 읽었습니다. 불행히도, functions.php 파일이 정상적으로 실행되는 동안, 내가 만든 변수에 액세스 할 수없는 것 같습니다. 나는 정의되지 않은 wp_head.variable을 시도했다. 나는 정의되지 않은 변수 이름을 시도했다. 나는 그것을 정의하려고 시도했지만, 그것은 단지 그 변수의 로컬 버전을 만든다.다른 하나의 자바 스크립트 함수 호출

첫 번째 스크립트에 대한 응답으로 두 번째 스크립트를 시작하는 쉬운 방법이 있다면 알려주십시오. 각 파일은 다른 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

+0

또는'window' -'window.activate = 1'에 넣으십시오. 필요에 따라 문제가 발생하고 유지 관리 문제가 발생할 수 있지만 동기화를 위해 전역을 사용합니다. –

+0

만약 javascript가 아니라면 그것의 곧은 해결책 인'global variables'가 .php 사이에 있다면'session'에 설정하십시오. – Khaleel

답변

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'); 
} 
관련 문제