В моем компоненте у меня есть один метод, в котором я прикрепляю привязку события jquery.
jqueryNextDataEditableShow() {
$('#symbolTable .editable').on('hidden', function (e, reason) {
if (reason === 'save' || reason === 'nochange') {
var $next = $(this).closest('td').next().find('.editable');
if ($next != undefined && $next.length == 0){
//call that method
}
setTimeout(function () {
$next.editable('show');
}, 300);
}
});
}
У меня в классе есть еще один метод, onSimulate().
onSimulate(){
console.info("onSimulate Method Called");
}
Я хочу назвать это внутри jqueryNextDataEditableShow(), где я поставил отметку комментария. Проблема, с которой я столкнулся, заключается в том, что ключевое слово функции this будет указывать на тег или элемент документа.
Пара предложений здесь: Как получить доступ к правильному this внутри обратного вызова?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вместо этого используйте стрелочную функцию => -
jqueryNextDataEditableShow() {
$('#symbolTable .editable').on('hidden', (e, reason) => {
if (reason === 'save' || reason === 'nochange') {
var $next = $(this).closest('td').next().find('.editable');
if ($next != undefined && $next.length == 0){
//call that method
}
setTimeout(() => {
$next.editable('show');
}, 300);
}
});
}
Подробнее о arrow function читайте здесь -
Тогда $(this).closest('td') не будет работать, верно?
Не уверен, но это должно работать ИМО
Если вы используете стрелочную функцию, this будет унаследован от родительской области, поэтому $(this) не будет работать - вы решите одну проблему за счет создания другой. Вы должны выбрать элемент явно.
this will be inherited from the parent scope Да, вы правы, спасибо, что указали на это !! Не могли бы вы обновить мой ответ своим решением или добавить новый ответ?
Я не уверен насчет события hidden (не могу найти его при беглом поиске), но возможно, что e.target ссылается на скрытый элемент. $next = $(e.target).closest(... может работать
@YashJain, пожалуйста, попробуйте этот код
используйте
arrow function, чтобы сохранить исходный контекст.