2012-03-22 2 views
0

나는 그 다음과 같습니다 바인딩 이벤트가 : 페이지로드에jQuery를 - 바인딩 이벤트에 동적 데이터를 추가

$('#form').on('submit', { callback : Obj.method }, FunctionName); 

바인딩 실행은, 그러나, 그 시간에 Obj.method이 정의되지 않은 - I Obj.method의 현재 값이 무엇이든간에 사용한다고 생각했지만, 실행될 때의 값을 사용합니다.

이벤트 처리기가 실행될 때 데이터를 결정할 수있는 방법이 있습니까? 이 시점에서 내 추측은 아니지만 ... 여기 사람들은 내가하는 것보다 더 많이 알 것 같다.

답변

2

콜백을 함수로 둘러 싸면 콜백이 실행될 때까지 실행되지 않습니다. 당신의 경우 단지를

$('#form').on('submit', function(e) { 
    FunctionName(Obj.method); 
}); 

또는 :이 이벤트 핸들러 화재가 당신이 그 다음 평가를 원하는 시간에 존재하는 변수의 경우

$('#form').on('submit', { 
    callback : function() { 
     Obj.method(); 
    } 
}, FunctionName); 
+0

데이터 인수를 이벤트의 시점에서 평가하기를 원한다면'.on()'함수에 약간의 요점이있는 것처럼 보입니다. 따라서, OP가 이벤트 당시 Obj.method()의 값을 원한다면, 왜 당신이하는 것처럼 데이터 인수를 전달합니까? 전혀 사지 않습니다. 이벤트가 정상적으로 처리 될 수있는 이벤트를 event.data에 넣는 것입니다. 이벤트 핸들러에서 직접'Obj.method()'를 호출하는 것이 더 간단하지 않습니까? – jfriend00

+0

@ jfriend00 나는 OP가 무엇을하려고하는지 알지 못한다. 나는 그저 그의 질문에 대답하고있다. 나는 그것이 거의 의미가 없다는 데 동의한다. –

1

, 당신은 핸들러 함수에서 직접 참조 할 수 있습니다 그것을 직접 호출하기를 원한다 :

$('#form').on('submit', function(e) { 
    Obj.method(); 
}); 
관련 문제