2009-10-14 2 views
4

я выбранный элемент управления, используя следующую переменную

var txt = $("#text1"); 

Теперь, когда я должен обрабатывать события на текстовое поле, я должен ссылаться на него, как $ (TXT) или TXT будет делать

$(txt).keydown(function() {}) 

или

txt.keydown(function(){}) 

Что такое преимущество. Пожалуйста, объясните это, используя переменную txt в качестве контекста.

ответ

17

Если txt уже равен объекту jquery, нет необходимости использовать $ (txt), так как это просто дополнительная обработка, чтобы вернуть то же самое.

5

Наилучший подход - объявить переменные, чтобы они знали, каковы они. В общем, что я хочу сказать, применить некоторые apps hungarian и префикс переменного JQuery с $

var $text1 = $("#text1"); // this is a jQuery object 
var text1 = $text1[0];  // this is not 
+0

Я также нашел, что это хорошая практика! –

+0

Если структура требует, чтобы вы развивали подобную практику, это очень тревожно. –

+3

@ Rakesh - прежде всего, никто не намекает, что это * требуется *. Во-вторых, я подозреваю, что вы никогда не работали с большим количеством jQuery, иначе вы бы знали, насколько сильно полезно это простое соглашение. Помните, что Apps Hungarian - это * хороший * тип венгерской нотации. –

0

Немного подробнее об ответе Чаде.

$() - это короткое замыкание на часто используемую функцию document.getElementById().

После поиска и сохранения значения объекта вам больше не нужно искать его. Как сказал Чад. Спросите себя, является ли переменная объектом или именем (строкой), если это имя, вам придется искать объект.

+0

Вы неверны. Из примера кода OP ясно, что он использует jQuery, и в этом случае '$ (...)' является «долларовой функцией» jQuery: http://docs.jquery.com/Core/jQuery –

+0

Бен хороший глаз. Я думал о прототипе функции $(). – Joel

0

По моему опыту, я обнаружил, что использование $ (txt) дает более предсказуемые результаты по сравнению с назначением его в качестве ссылки и использованием ссылки для вызова тех же методов/свойств. Возможно, это было суеверие с моей стороны, однако некоторые из нас на работе были сорваны, используя ссылку, такую ​​как txt, а не неявный $ (txt), когда txt был назначен.

Смежные вопросы