2011-08-03 4 views
0

자바 스크립트에서 '리스너'유형 (Facebox) 내에서 일부 변수에 액세스해야합니다. 자바 스크립트 함수와 이벤트 리스너간에 변수를 전달하려면 어떻게해야합니까?자바 스크립트에서 이벤트 리스너 내 변수에 액세스하는 방법

범위와 관련하여 다소 혼란 스럽지만 글로벌 변수 선언이 조금 엉뚱한 것 같습니다. 특히 다른 컨트롤 (예 : 모달 내 결과에 대한 페이지 매김)을 고려하면 글로벌 변수만큼이나.) (당신이 사용한 예에서

function song_clarify() 
{  
    // this launches a modal window, fills with html. 
    $.facebox('<div id="search"><div></div></div>');   
} 

// AJAX function. when called, this loads the required htmls into the modal 
function clarify_loader() 
{ 
    var loadUrl = "ajax/clarify"; 

    $("#search > div") 
     .html(ajax_load) 
     .load(loadUrl, 'search='+source+'&searchTerm='+song); 
} 

// Waits for the modal to be revealed before calling AJAX function. 
// (if function called outside listener, nothing for the AJAX to bind to as modal appears dynamically) 
$(document).bind('reveal.facebox', function() { 

    // Problem is here. Need to be able to do clarify_loader(source,song) 
    clarify_loader(); 

}) 
+0

출처와 노래는 어디에서 왔습니까? 노래와 검색을 입력하는 사용자라면 html에서 가져올 수 있습니다. – ika

답변

1

하는하여 $ (문서)의 외부 VAR .bind ('reveal.facebox', 기능 :

는 나에게 문제를 일으키는 섹션 {})이 올바른 디자인이 될 것입니다. 이 링크는 도움이 될 수 있습니다 :

http://api.jquery.com/bind/

는 "전달 이벤트 데이터"

0

글쎄라는 섹션으로 이동, 당신은 소스와 노래 변수가 선언 된 곳에서 제공하지 않았다. 사용자가 입력 한 내용으로 사용자가 입력하는 경우 아무런 문제가 없을 것이라고 생각합니다. 당신이 clarify_loader 내에서 값을 할당하는 경우 다음 단지 전역 변수

var var1, var2; 

function a(){ 
    var1 = "x" 
    var2 = "y" 
} 

function b(){ 
    alert(var1) //x 
    alert(var2) //y 
} 

하고 기능을 A와 B를 호출 할 때 다음 각각 당신의 변수 값 x와 y가됩니다를 사용합니다.

관련 문제