2011-10-09 2 views
0

내 모듈에서 +1 기능을 사용하여 래핑 한 +1 클릭에 등록하려고합니다.클릭 핸들러가 오브젝트 일 수 있습니까?

이 목적을 위해 전역 개체 MyModule을 만들고이를 통해 내 클릭 핸들러 함수를 내 보냈습니다. 문제는 내 클릭 핸들러가 호출되지 않는다는 것입니다.

Live demo. 코드 : 작동

내가 콜백으로 유일한 목적 window.MyModule.plusOneClicked에 대한 호출을 전달하는 외부 기능을 제공
// Initialize +1 button 
gapi.plusone.go(); 


(function(){ 
    window.MyModule = {}; 

    function plusOneClicked() { 
    alert("+1!"); 
    } 

    window.MyModule.plusOneClicked = plusOneClicked; 
})() 

... 

<g:plusone callback='window.MyModule.plusOneClicked'></g:plusone> 

, 왜 것 클릭 처리기 미스

function foo() { 
    window.MyModule.plusOneClicked(); 
} 
... 
<g:plusone callback='foo'></g:plusone> 

을 window.MyModule.plusOneClicked(), 그러나 foo()를 찾으십니까? callback은 (foo() 같이) 직접 핸들러 방법 아닌 (window.MyModule.plusOneClicked에서와 같이) 참조 예상하므로

답변

1

구글은 아마도 자신의 코드에

window[callback](); 

을 쓰고있다.

이렇게하려면 callback 문자열이 다른 개체의 속성이 아닌 window의 속성을 참조해야합니다.

0

난 믿는다. 그래서 기본적으로 클릭 핸들러에 이러한 참조를 할당 할 수는 없지만 핸들러로 (래퍼) 메소드를 작성하고 필요한 호출을 수행하게하십시오.

+0

귀하의 용어가 잘못되었습니다. – SLaks

관련 문제