2017-02-16 2 views
3

нужно вызвать функцию React (this.clearMath()) от функции JQВызова реагировать функции от функции JQ

$('.input-content').focus(
    function(){ 
     this.clearMath() 
    }) 

Я получил неперехваченный TypeError: this.clearMath не является функция. Я думаю, что это вызвано JQ, который считает, что this. является ссылкой на выбранный элемент $('.input-content').

Я прав? И как отличить реакцию this от jQuery this, чтобы иметь возможность вызывать мою функцию? Благодаря

+0

'this' ссылается на область действия, в которой вы сейчас находитесь. В этом случае вы правы, область действия селектора. Я не уверен, почему вы пытаетесь вызвать функцию React из jQuery. Это не кажется правильным. Насколько мне известно, невозможно вызвать функцию React, определенную внутри компонента React из jQuery. – juancab

+0

Можете ли вы разместить свой код в jsfiddle для лучшего понимания того, что вы пытаетесь сделать? – juancab

ответ

3

Вы можете решить эту проблему, делая это:

var _ = this; 
$('.input-content').focus(
function(){ 
    //this is still the input 
    _.clearMath() 
}) 

Таким образом, вы сохраните этот контекст перед селектором, так что вы можете получить доступ к _ внутри функции, ее называют closure.

+0

Это работает. Благодарю. –

Смежные вопросы