Что может содержать в себе одна из главных функций jquery $();?
На сколько я знаю функцию $(); возвращает объект jquery, а может содержать в себе:
$('div'); - выборку элементов
$(i); - переменную
$(window); - объект
Что еще?
Артур Черешнюк: в приведенном вами примере touch - это переменная, содержащая в себе jQuery-объект $('#touch-menu'). То есть приведенную там запись можно прочитать так:
$($('#touch-menu')).on('click', function(e){
Вы слегка не понимаете, что такое типы данных в JavaScript. "Переменная" - это не тип данных, но переменная может содержать в себе любое значение: строки (например, селекторы типа "#id"), числа, функции, объекты (в т.ч. DOM-объекты, jQuery-объекты) и другие менее распространенные типы данных. document и window - это всё тоже переменные типа "объект".
terron: Спасибо, уже более ясно. Но почему тогда $() называют jquery функцией если это jquery объект? Много читал об этом но так и не могу визуально представить себе что такое jquery объект.
Судя по этой статье как я понимаю jquery.page2page.ru/index.php5/%D0%9E%D0%B1%D1%8A%...
Т.е. $(div) эта запись это jquery объект который хранит в себе селектор? А в данном случаи $(touch) это jquery объект который хранит в себе переменную которая хранит в себе строковое значение(селектор?)
Можно как то посмотреть через диспетчер задач во что интерпретируется данная запись $(div)? Пока я в голове не расставлю все по полочкам мне сложно понять что я с jquery объектом могу сделать.
Так же не понятно в моем коже почему (window).width(); пишется именно внутри $(window).resize? Об этом нигде не пишут.
Спасибо, уже более ясно. Но почему тогда $() называют jquery функцией если это jquery объект?
Функции jQuery возвращают данные типа "объект", которые называют jQuery-объектом. Что такое "возвращают данные"? Это когда функция на своём месте оставляет какие-то данные. Например, есть функция Math.ceil(), которая округляет числа с плавающей точкой в большую сторону. Допустим, можно написать вот так:
alert('У Маши было чуть больше ' + Math.ceil(18.2) + ' рублей. ')
Представьте на месте функции в данном примере число 18 - так это и работает. Вот так же jQuery-функции на месте себя и оставляют так называемые jQuery-объекты. $() - это функция, которая возвращает jQuery-объект. Понятненько?
Т.е. $(div) эта запись это jquery объект который хранит в себе селектор?
Не совсем. $('div') (не забывайте про кавычки) - это функция, которая принимает в качестве аргумента строку в виде селектора и которая возвращает jQuery-объект.
А в данном случаи $(touch) это jquery объект который хранит в себе переменную которая хранит в себе строковое значение(селектор?)
В приведенном вами выше примере $(touch) - это функция, которая принимает в качестве аргумента переменную. Переменная является jQuery-объектом, который вернулся функцией, принявшей в качестве аргумента строку-селектор.
// Вот это ...
var touch = $('#touch-menu');
$(touch).on('click', function(e) {/* ... */});
// ... тоже самое, что и это ...
$($('#touch-menu')).on('click', function(e) {/* ... */});
Можно как то посмотреть через диспетчер задач во что интерпретируется данная запись $(div)?
terron: Повешу ответ на стену) prntscr.com/cadcac вот что в консоле console.log($('div')) Как я понимаю там объект java script с свойствами. Если бы не было jquery мне бы пришлось писать на чистом js подобный объект что бы сделать выборку например?
Только CSS-селекторы и те, что встроены в jQuery. Также функция принимает объекты DOM, возвращаемые функциями типа document.getElementById(), document с window и jQuery-объекты, типа $($('div')).