Как получить ссылку на список возврата селектора jQuery? - PullRequest
0 голосов
/ 04 ноября 2011

У меня есть функция jQuery:

rfx.jQuery(function(){
    rfx.jQuery(".form-row.errors").blur(some_function(this))
});

Но 'this' - это HTMLDocument, а не список возвращаемых значений селектора. Как получить ссылку на список элементов?

Ответы [ 2 ]

2 голосов
/ 04 ноября 2011

Результат самого выделения, т.е. rfx.jQuery(".form-row.errors") будет массивом возвращаемых элементов.

Однако в вашем событии размытия ...

rfx.jQuery(".form-row.errors").blur(function(){
     //`this` is the element reference... 
});

Смотрите это Пример JS fiddle и вкладка между полями ввода.

Вы не можете получить доступ к полному выделению из размытия без:

a) Повторного выборавнутри функции blur() ...

rfx.jQuery(function(){
    rfx.jQuery(".form-row.errors").blur(function(){
         // `this` is the element which is blurring
         var formRowErrors = rfx.jQuery(".form-row.errors") //select again within the blur function
    });  
});

b) Использование замыкания, например ...

rfx.jQuery(function(){
    var formRowErrors = rfx.jQuery(".form-row.errors");
    rfx.jQuery(".form-row.errors").blur(function(){
         // `this` is the element which is blurring
         // formRowErrors is the jQuery selection of all form-row.errors
    });  
});

Однако в этом втором методеvar formRowErrors будет содержать только выбор во время привязки , т. е. он не "живой"

1 голос
/ 04 ноября 2011

У вас есть проблема контекста.

rfx.jQuery(".form-row.errors").blur(function(){
   some_function(this);
});

Функция anonymus будет иметь результат rfx.jQuery(".form-row.errors") как this, тогда как если вы сделаете

rfx.jQuery(function(){
    rfx.jQuery(".form-row.errors").blur(some_function(this))
});

, это будетконтекст в rfx.jQuery

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