2012-06-16 2 views
3

, I 이벤트에 기능을 결합하고자하지만 함수가jQuery를 바인딩이

function Foo(){ 

    t : "123", 
    bar: function(){ 
    // I am here 
    $('#selector').bind('click' this.foo); 
    } 
    , 
    foo: function(){ 
    //I want when to be able to use the current object here by this 
    //this.t should be 123 and this.bar should call the above function 
    } 
} 

답변

5

당신은 012을 사용할 수 있습니다:

$('#selector').bind('click', $.proxy(this.foo,this)); 
+1

아하 !!! 나는 그런 존재를 결코 알지 못했다 :) – Abid

+3

@Joy는 여기에서 잘 작동한다. http://jsfiddle.net/m84wh/ – charlietfl

+0

@charlietfl, 해명 해줘서 고마워. +1, jQuery 함수를 호출 할 때 컨텍스트를 덮어 쓸 줄 알았는데. 좋은 것을 배웠습니다. –

1

복사 로컬 변수로 오브젝트에 대한 참조를 호출 컨텍스트를 변경할 및 함수에서 사용 : 당신이 이벤트 객체가 필요한 경우

var me = this; 
$('#selector').bind('click' function() { me.foo(); }); 

, 그 위에 통과 :

var me = this; 
$('#selector').bind('click' function(e) { me.foo(e); }); 
+0

예 나는 이것을 할 수 있지만 실제로는 그다지 좋아하지 않습니다. backbone.js를 사용하고 있습니다.이 질문을 여기에서 볼 때 왜 내가 사본을 원하지 않는지에 대한 더 나은 아이디어를 얻을 수 있습니다. http://stackoverflow.com/questions/11066543/backbone-js-and-jquery-binding- 클릭 이벤트 - 투 - 뷰 기능 – Abid

관련 문제