Как это работает в jQuery - PullRequest
       8

Как это работает в jQuery

1 голос
/ 20 февраля 2012

Может кто-нибудь объяснить, как "это" работает в jQuery. Я пытался найти какую-то информацию в сети, но поскольку слово «это» часто используется в его обычном значении, я не смог найти ничего хорошего.

Я хотел бы иметь возможность изменять фон элемента списка (<li>) по щелчку мыши без указания идентификатора каждого элемента списка.

Ответы [ 7 ]

2 голосов
/ 20 февраля 2012
$('li').on('click.namespace', function() {

   console.log(this);    /* this is a reference to the DOM 
                            element you clicked */

   console.log($(this)); /* this is a jQuery reference to the 
                            DOM element you clicked */

   /* using jQuery reference you can change the background in this way */
   $(this).css('background-image', 'url(...)');




});
1 голос
/ 20 февраля 2012

Иногда вам нужно использовать связанную функцию (см. jQuery.proxy()) в качестве обработчика событий, в этих случаях вы можете получить доступ к текущему элементу по-другому, вместо this, вы можете использовать свойство event.currentTarget, см. http://api.jquery.com/event.currentTarget/

1 голос
/ 20 февраля 2012

jQuery достаточно любезен, чтобы установить контекст вашей функции в соответствии с тем, что вам интересно. В данном случае речь идет о <li>. Но this - все еще голый элемент DOM, вам нужно обернуть его $(), чтобы использовать методы jQuery.

$('li').on('click', function() {
    $(this).css({background:'red'});
});
1 голос
/ 20 февраля 2012

Если вы установили событие onclick в li, вы можете использовать $ (this), чтобы получить объект jquery из li, а затем добавить класс, например. $ (Это) .addClass ( "newBackground").

1 голос
/ 20 февраля 2012
$("li").click(function() {
   $(this).css("background-color", "red");

});

Вот пример.$(this) относится к объекту JQuery, this относится к обычному объекту DOM, по которому щелкнули.

1 голос
/ 20 февраля 2012

Вот пример:

$('li').click(function() {
  $(this).attr("class", "clicked");
});

Когда вы щелкаете по элементу, this принимает значение элемента, по которому щелкают, то есть элемент DOM. $(this) дает вам доступ к jquery API.

1 голос
/ 20 февраля 2012

Вы нашли документацию click () ? Он показывает, как вы должны использовать обработчики кликов и , в нем есть примеры, которые даже используют $(this).

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