2015-02-23 4 views
-1

У меня есть test.html, который включает tree.js.call Object Function from onClick Event

в этом HTML У меня есть

<div id='forObj'></div> 
<script type='text/javascript'> 
var obj = new Tree(document.getElementById('forObj'); 
</script> 

Внутри Tree.js файла У меня есть функция под названием

this.draw 
... 
else 
      { 

        div.onclick = function(){obj.eventFoo(this.id);}; 

      } 

...

моя Проблема: Теперь каждый должен позвонить объект obj или это не сработает. Как я могу обобщить его, чтобы объект мог получить каждое имя, которое хочет использовать кодер?

Привет

+0

использовать это.eventFoo вместо obj.eventFoo –

+0

Очень неясно, что вы просите. У вас также есть недостающая скобка в первом блоке кода. – Jamiec

ответ

0

Просто определить свою собственную obj переменную с текущим экземпляром, используя closure для слушателя событий:

… else { 
    var obj = this; 
    div.onclick = function(e) { 
     obj.eventFoo(this.id); 
    }; 
} 

Смотрите также How to access the correct `this` context inside a callback? для очень похожем проявления проблемы (хотя вы о покупке, чтобы использовать обработчика).

+0

это сработало. благодаря – SepGuest