Вопрос выбора jQuery - PullRequest
       3

Вопрос выбора jQuery

1 голос
/ 08 января 2010

Я столкнулся с кодом, использующим jQuery, похожим на следующий.

NAMESPACE = {
    propertyA : $("#selector-a"),
    propertyB : $("#selector-b")
}

$(NAMESPACE.propertyA).click(function(){
    // ...
});

Кажется, это работает, хотя синтаксис для подключения обработчика кликов должен быть.

NAMESPACE.propertyA.click(function(){
    // ...
});

Имеет ли jQuery встроенную возможность разрешать следующее, несмотря на неверный синтаксис?

$($("#my-selector")).click ... etc.

Ответы [ 2 ]

3 голосов
/ 08 января 2010

Да. jQuery допускает в качестве аргументов $:

  • Селектор CSS
  • Элемент DOM
  • Массив элементов DOM
  • Объект jQuery
  • Функция (которая будет вызываться как часть $.ready())

Все это допустимый синтаксис в том, что касается jQuery, хотя в некоторых из этих случаев производительность может снизиться.

Поскольку ваши NAMESPACE.properties являются элементами jQuery, это будет работать.

1 голос
/ 08 января 2010

Да, он справится с этим в случае необходимости. Вы действительно не должны использовать этот синтаксис, если он находится под вашим контролем. Я проверил следующее и получил одинаковые результаты с обоими:

$($("li")).click(function(e){
  alert(e.target);
});

//--

$("li").click(function(e){
  alert(e.target);
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...