Как jQuery обрабатывает 'this' в функции массива? - PullRequest
2 голосов
/ 16 марта 2020

Я очень новичок в jQuery. Я написал код

$(document).ready( function() {
        a= $( '.play' ).click( function() {
                let a = this;
                a.css( 'background-image', 'url(pause.svg)' );
                return a;
        } );
)};

Затем, когда я утешаю a, я получаю правильный результат, также a.css относится к jQuery. но когда я щелкаю по элементу, возвращается ошибка типа.

TypeError: a. css не является функцией

Может быть, я еще не правильно понимаю asyn c JavaScript звонок. У меня вопрос, почему я получаю эту ошибку? Как jQuery обрабатывает это ключевое слово в функции Array?

--- Решена проблема ---

Я нашел this против $ (this) обсуждение - мой ответ.

Ответы [ 2 ]

2 голосов
/ 16 марта 2020
let a = this;

должно быть

let a = $(this); // now it will create an object of current click element.

Я думаю, что приведенный ниже код также будет работать отлично, попробуйте.

$(document).ready( function() {
    $( '.play' ).click( function() {
        $(this).css( 'background-image', 'url(pause.svg)' );
    });
)};

Примечание: this см. javascript Объект и работа по-другому. Для более подробной информации читайте ниже ссылки (относительно того, что это такое, как это работает на основе другого режима и способа вызова)

javascript это

это против $ (этого)

1 голос
/ 16 марта 2020

вам просто нужно понять основы c.

this -> Html DOM element. //the classic JavaScript API is exposed here
$(this)-> $() + this -> you are passing element in a jQuery Constructor-> JQuery object. // jQuery API is exposed

Поэтому, когда вы делаете это, вы активируете jQuery Объект, чтобы вы могли поиграть с ним.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...