$ (это) и это. в той же функции - PullRequest
0 голосов
/ 09 июля 2020

Приведенный ниже код вызовет функцию, которая добавляет щелкнувшее имя в массив. Однако $ (this) вызывает объект приложения вместо выделенного текста. Я предполагаю, что не могу использовать $ (this) и this в одной функции и ожидать, что this будет вызывать разные вещи. Есть ли альтернативное решение?

var App = function () {
this.friends = [];
};

App.prototype.addFriend = function () {
name = $(this).text();
this.friends.push(name); 
}

var app = new App();

$(document).ready(function () {
$(document).on("click", ".user", function () {app.addFriend()});
}

Ответы [ 2 ]

0 голосов
/ 09 июля 2020

Вы можете передать целевой элемент события клика в качестве аргумента в addFriend():

App.prototype.addFriend = function (item) {
name = $(item).text();
this.friends.push(name); 
}

var app = new App();

$(document).ready(function () {
$(document).on("click", ".user", function (event) {app.addFriend(event.target)});
}
0 голосов
/ 09 июля 2020

передать объект события в функцию и взять из него значение

var App = function () {
this.friends = [];
};

App.prototype.addFriend = function (event) {
name = $(event).target.value;
this.friends.push(name); 
}

var app = new App();

$(document).ready(function () {
$(document).on("click", ".user", function (event) {app.addFriend(event)});
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...