JQUERY » История » Версия 2
Александр Александров, 25.04.2019 15:16
1 | 1 | Александр Александров | h1. JQUERY |
---|---|---|---|
2 | |||
3 | h2. Вопросы |
||
4 | |||
5 | # Что такое jQuery? |
||
6 | # Какие преимущества jQuery? |
||
7 | # Чем отличаются JavaScript от jQuery? |
||
8 | # jQuery это библиотека для написания сценариев на стороне клиента или на стороне сервера? |
||
9 | # Является ли jQuery стандартом W3C? |
||
10 | # Как начать работать с jQuery? |
||
11 | # Что является отправной точкой начала выполнения кода в JQuery? |
||
12 | # Что означает знак доллара ($) в JQuery? |
||
13 | # Можем ли мы иметь несколько функций document.ready() на одной и той же странице? |
||
14 | # Можем ли мы использовать наш собственный символ вместо знака $ в JQuery? |
||
15 | 2 | Александр Александров | # Можно ли на стороне клиента использовать другие библиотеки, такие как MooTools, Prototype вместе с JQuery? |
16 | # Что такое jQuery.noConflict? |
||
17 | 1 | Александр Александров | # Какая разница между window.onload, document.ready() и $(function(){...});? |
18 | # Какая разница между jquery.js и jquery.min.js ? |
||
19 | # Что такое селектор в JQuery, какие типы селекторов вы знаете? |
||
20 | # Какие селекторы в JQuery самые быстрые? |
||
21 | # Как выбрать все элементы с id = idname |
||
22 | # Как выбрать все элементы div с id = idname |
||
23 | # Как выбрать все элементы с class = classname |
||
24 | # Как выбрать все элементы div с class = classname |
||
25 | # Как выбрать все span элементы в элементах div |
||
26 | # Как выбрать все div и span элементы |
||
27 | # Как выбрать предыдущий элемент от найденного |
||
28 | # Как выбрать следующий элемент от найденного |
||
29 | # Как выбрать все span элементы в элементах div, где span является прямым потомком div’a |
||
30 | # Как выбрать все span после первого элемента div? |
||
31 | # Как выбрать первый li в ul? |
||
32 | 2 | Александр Александров | # Как выбрать DIVы у которых нет класса CLS? |
33 | 1 | Александр Александров | # Как выбрать элементы с активной анимацией? |
34 | # Как выбрать div-ы которые содержат класс firstclass и класс secondclass? |
||
35 | # Как выбрать все div-ы с атрибутом title = test? |
||
36 | # Как выбрать все отмеченные чекбоксы? |
||
37 | # Как выбрать все input с type = radio? |
||
38 | # Как выбрать видимый div с именем red, который содержит тег span? |
||
39 | # Что выберет этот фільтр $("a[rel~= 'external ']"); ? |
||
40 | # Что выберет этот фільтр $("div[name=apple]:visible:has(p)"); ? |
||
41 | # Найти все элементы div с классом one, а также все элементы p с классом two, затем добавить им всем класс three и визуально плавно спустить вниз? |
||
42 | # Сделать так, чтобы при нажатии на элемент <а> алертом выводилось "Hello world!". |
||
43 | # Что быстрее document.getElementByID('txtName') или $('#txtName')? |
||
44 | # Какая разница между $(this) и 'this' в jQuery? |
||
45 | # Как проверить, что элемент пустой? |
||
46 | # Как проверить существует ли элемент в JQuery? |
||
47 | # Для чего используется функция jQuery ".each()"? |
||
48 | # Какая разница между $('div') и $('<div/>') в jQuery? |
||
49 | # Какая разница между parent(), parents(), closest() в jQuery? |
||
50 | # Какая разница между get() и eq() методами в jQuery? |
||
51 | # Как добавить анимацию в jQuery? |
||
52 | # Как отключить JQuery анимацию? |
||
53 | # Как остановить текущую запущенную анимацию в JQuery? |
||
54 | # В чем разница между методами .empty () .remove () и .detach () в JQuery? |
||
55 | # Какая разница между .bind() .live() .delegate() и .on()? |
||
56 | # Как создать клон объекта в JQuery? |
||
57 | # В чем разница между prop и attr? |
||
58 | # Что такое event.preventDefault? |
||
59 | # В чем разница между event.PreventDefault и event.stopPropagation? |
||
60 | # Как проверить есть переменная числом, используя JQuery 1.7+? |
||
61 | # Как проверить тип данных переменной в JQuery? |
||
62 | # Как привязать обработчик события к выбранному элементу, которое должно быть выполнено только один раз? |
||
63 | # Можно ли удерживать или задержать выполнение document.ready на некоторое время? |
||
64 | # Что такое цепочка методов в jQuery? |
||
65 | # Можем ли мы использовать JQuery, чтобы сделать AJAX запрос? |
||
66 | # Какими методами можно сделать AJAX запрос в JQuery? |
||
67 | # Что такое отсроченные(Deferred) объекты в jQuery? |
||
68 | # Что делает метод finish()? |
||
69 | # Можно ли не указывать протокол в URL когда jQuery ссылается на CDNs? |
||
70 | # Что такое jQuery плагины и какие преимущества их использования? |
||
71 | |||
72 | h2. Ответы |
||
73 | |||
74 | h3. Что такое jQuery? |
||
75 | |||
76 | 2 | Александр Александров | jQuery - это быстрая, легковесная и многофункциональная JavaScript-библиотека (некоторые называют ее фреймворком), фокусирующаяся на взаимодействии JavaScript, HTML и CSS, с ее помощью легко сделать анимацию, добавить взаимодействие Ajax, манипулировать содержимим страницы, изменить стиль и обеспечить крутой UI-эффект. Это одна из самых популярных библиотек на стороне клиента. Она обеспечивает кроссбраузерную поддержку приложений (работает в Internet Explorer 6.0+, Mozilla Firefox 2+, Safari 3.0+, Opera 9.0+ и Chrome). Автор библиотеки Джон Резиг (John Resig) впервые представил свое творение в январе 2006. |
77 | |||
78 | 1 | Александр Александров | h3. Какие преимущества jQuery? |
79 | |||
80 | 2 | Александр Александров | Вот только некоторые преимущества jQuery: |
81 | |||
82 | * Существенно уменьшается количество кода (необходимого для работы скрипта) по сравнению с JavaScript, что в свою очередь означает меньше временных затрат и более читабельный код. |
||
83 | * Намного проще понять код (в отличии от JavaScript). |
||
84 | * Множество различных эфектов |
||
85 | * Использование Ajax становится намного проще. |
||
86 | * Кросс-браузерная совместимость |
||
87 | * Огромное количество плагинов, с помощью которых можно сделать практически все что угодно. |
||
88 | * Простота использования |
||
89 | * Очень удобная документация и активное комьюнити, готовое всегда оказать помощь при необходимости. |
||
90 | |||
91 | 1 | Александр Александров | h3. Чем отличаются JavaScript от jQuery? |
92 | |||
93 | 2 | Александр Александров | Javascript - это язык программирования, с помощью которого веб-страницам придается интерактивность. jQuery это библиотека, написанная на javascript. |
94 | |||
95 | 1 | Александр Александров | h3. jQuery это библиотека для написания сценариев на стороне клиента или на стороне сервера? |
96 | |||
97 | 2 | Александр Александров | На стороне клиента. |
98 | |||
99 | 1 | Александр Александров | h3. Является ли jQuery стандартом W3C? |
100 | |||
101 | 2 | Александр Александров | Нет jQuery не является стандартом W3C. |
102 | |||
103 | 1 | Александр Александров | h3. Как начать работать с jQuery? |
104 | |||
105 | 2 | Александр Александров | Первым делом Вам необходимо посетить главную страницу официального сайта jQuery и скачать наиболее свежую версию данного фреймворка. После необходимо закачать этот файл к себе, и в шапке документа прописать ссылку на этот файл. |
106 | |||
107 | <pre><code class="javascript"> |
||
108 | <script type="text/javascript" scr="/jquery.js"></script> |
||
109 | </code></pre> |
||
110 | |||
111 | В качестве альтернативы, можно воспользоваться помощью Гугла и поставить ссылку на их сервер, где находятся всегда свежие версии любых фреймворков. |
||
112 | |||
113 | 1 | Александр Александров | h3. Что является отправной точкой начала выполнения кода в JQuery? |
114 | |||
115 | 2 | Александр Александров | Для выполнения нашего скрипта в jQuery, нам необходимо поместить весь наш скрипт в функцию. Эта функция будет выполнена при полной готовности DOM. Отправной точкой является функция $(document).ready(). Пример: |
116 | |||
117 | <pre><code class="javascript"> |
||
118 | $(document).ready(function(){ |
||
119 | // Code here |
||
120 | }); |
||
121 | </code></pre> |
||
122 | |||
123 | Объясню что этот код означает. |
||
124 | |||
125 | $() - это селектор, он позволяет выбрать нужный Вам HTML тег для дальнейшей манипуляции. |
||
126 | |||
127 | Мы выбираем элемент "document" - это основной элемент документа в браузере. ready() - это событие, оно срабатывает, в нашем случае, когда выбранный элемент "document" будет готов. Далее мы создаем функцию и вызываем в ней любой JavaScript/JQuery код. |
||
128 | |||
129 | 1 | Александр Александров | h3. Что означает знак доллара ($) в JQuery? |
130 | |||
131 | 2 | Александр Александров | $() - это селектор, он позволяет выбрать нужный Вам HTML тег для дальнейшей манипуляции. Также ($) ето псевдоним для JQuery. Простой пример: |
132 | |||
133 | <pre><code class="javascript"> |
||
134 | $(document).ready(function(){ |
||
135 | }); |
||
136 | </code></pre> |
||
137 | |||
138 | здесь знак $ можно заменить ключевое слово "JQuery". |
||
139 | |||
140 | <pre><code class="javascript"> |
||
141 | jQuery(document).ready(function(){ |
||
142 | }); |
||
143 | </code></pre> |
||
144 | |||
145 | 1 | Александр Александров | h3. Можем ли мы иметь несколько функций document.ready() на одной и той же странице? |
146 | |||
147 | 2 | Александр Александров | Да. Мы можем иметь любое количество функций document.ready() на одной и той же странице. |
148 | |||
149 | 1 | Александр Александров | h3. Можем ли мы использовать наш собственный символ вместо знака $ в JQuery? |
150 | |||
151 | 2 | Александр Александров | Да. Это вполне возможно, с использованием jQuery.noConflict(). |
152 | 1 | Александр Александров | |
153 | 2 | Александр Александров | h3. Можно ли на стороне клиента использовать другие библиотеки, такие как MooTools, Prototype вместе с JQuery? |
154 | 1 | Александр Александров | |
155 | 2 | Александр Александров | Да. |
156 | 1 | Александр Александров | |
157 | 2 | Александр Александров | h3. Что такое jQuery.noConflict? |
158 | 1 | Александр Александров | |
159 | 2 | Александр Александров | Этот метод отключает использование $ в качестве переменной jQuery.jQuery.noConflict( [ removeAll ] ) removeAll - ето логическое значение, указывающее, нужно ли освобождать все имена переменных, занятые jQuery. По умолчанию false. |
160 | |||
161 | Многие другие javascript библиотеки, так же как и jQuery используют $ как имя переменной или функции. Однако, в случае jQuery, $ является синонимом (алиасом) идентификатора jQuery. Поэтому, при освобождении имени $ с помощью jQuery.noConflict() мы не теряем функциональности библиотеки jQuery, посколько можем использовать вместо него jQuery. |
||
162 | Мы можем отдать контроль над переменной $ другой библиотеке с помощью метода $.noConflict(): |
||
163 | |||
164 | {{dmsf_image(349)}} |
||
165 | |||
166 | Эту технику удобно применить, если использовать сразу несколько библиотек: |
||
167 | |||
168 | {{dmsf_image(350)}} |
||
169 | |||
170 | создаём алиас на jQuery: |
||
171 | |||
172 | {{dmsf_image(351)}} |
||
173 | |||
174 | 1 | Александр Александров | h3. Какая разница между window.onload, document.ready() и $(function(){...});? |
175 | |||
176 | 2 | Александр Александров | onload - это событиев DOM, срабатывает после загрузки всего содержимого, включая и изображения, и прочее. |
177 | |||
178 | $(document).ready - возникает в момент готовности дерева DOM, то есть не ожидаетзагрузки изображений. |
||
179 | $(function(){...}); - это тоже самое, что $(document).ready(function () { ... }); |
||
180 | |||
181 | 1 | Александр Александров | h3. Какая разница между jquery.js и jquery.min.js ? |
182 | |||
183 | 2 | Александр Александров | jquery.js (без приставки min в названии) - этот файл используется для разработки веб-сайтов и скриптов. Он представляет собой несжатый и легко читаемый Javascript код. |
184 | jquery.min.js (добавлена приставка min в название файла) - отличие этого файла от предыдущего в том, что этот файл является более компактным, т.к. в нем удалены: |
||
185 | |||
186 | * отступы |
||
187 | * переносы строк |
||
188 | * укорачиваются имена переменных. |
||
189 | |||
190 | Преимущества, объем очень значительно уменьшается. Что касается функциональности обоих файлов, то она одинакова. Функции одни и те же. |
||
191 | |||
192 | 1 | Александр Александров | h3. Что такое селектор в JQuery, какие типы селекторов вы знаете? |
193 | |||
194 | 2 | Александр Александров | Для работы с элементами на странице, сначала нам нужно их найти. Для того, чтобы найти HTML элемент в JQuery мы используем селекторы. Есть много типов селектор, основные из них селекторы: |
195 | |||
196 | * #ID - Соответствует единственному элементу с заданным атрибутом ID. element - Соответствует всем элементам с заданным именем. |
||
197 | * .class - Соответствует всем элементам данного класса. |
||
198 | * .class.class - Соответствует всем элементам данных классов. |
||
199 | * * - Соответствует всему. |
||
200 | * selector1, selector2, selectorN - Выводит результат в зависимости от комбинации указанных селекторов. |
||
201 | |||
202 | 1 | Александр Александров | h3. Какие селекторы в JQuery самые быстрые? |
203 | |||
204 | 2 | Александр Александров | Самыми быстрыми селекторами в JQuery являются ID и element селекторы. |
205 | |||
206 | 1 | Александр Александров | h3. Как выбрать все элементы с id = idname |
207 | |||
208 | 2 | Александр Александров | <pre> |
209 | $( '#idname '); |
||
210 | </pre> |
||
211 | |||
212 | 1 | Александр Александров | h3. Как выбрать все элементы div с id = idname |
213 | |||
214 | 2 | Александр Александров | <pre> |
215 | $( 'div#idname '); |
||
216 | </pre> |
||
217 | |||
218 | 1 | Александр Александров | h3. Как выбрать все элементы с class = classname |
219 | |||
220 | 2 | Александр Александров | <pre> |
221 | $( '.classname '); |
||
222 | </pre> |
||
223 | |||
224 | 1 | Александр Александров | h3. Как выбрать все элементы div с class = classname |
225 | |||
226 | 2 | Александр Александров | <pre> |
227 | $( 'div.classname '); |
||
228 | </pre> |
||
229 | |||
230 | 1 | Александр Александров | h3. Как выбрать все span элементы в элементах div |
231 | |||
232 | 2 | Александр Александров | <pre> |
233 | $( 'div span '); |
||
234 | </pre> |
||
235 | |||
236 | или так: |
||
237 | |||
238 | <pre> |
||
239 | $( 'div ').find('span '); |
||
240 | </pre> |
||
241 | |||
242 | 1 | Александр Александров | h3. Как выбрать все div и span элементы |
243 | |||
244 | 2 | Александр Александров | <pre> |
245 | $( 'div, span '); |
||
246 | </pre> |
||
247 | |||
248 | 1 | Александр Александров | h3. Как выбрать предыдущий элемент от найденного |
249 | |||
250 | 2 | Александр Александров | <pre> |
251 | $( '#banner ').prev(); |
||
252 | </pre> |
||
253 | |||
254 | 1 | Александр Александров | h3. Как выбрать следующий элемент от найденного |
255 | |||
256 | 2 | Александр Александров | <pre> |
257 | $( '#banner ').next(); |
||
258 | </pre> |
||
259 | |||
260 | 1 | Александр Александров | h3. Как выбрать все span элементы в элементах div, где span является прямым потомком div’a |
261 | |||
262 | 2 | Александр Александров | <pre> |
263 | $( 'div > span '); |
||
264 | </pre> |
||
265 | |||
266 | 1 | Александр Александров | h3. Как выбрать все span после первого элемента div? |
267 | |||
268 | 2 | Александр Александров | <pre> |
269 | $( 'div ~ span '); |
||
270 | </pre> |
||
271 | |||
272 | 1 | Александр Александров | h3. Как выбрать первый li в ul? |
273 | |||
274 | 2 | Александр Александров | <pre> |
275 | $( 'ul li:first-child '); |
||
276 | </pre> |
||
277 | |||
278 | h3. Как выбрать DIVы у которых нет класса CLS? |
||
279 | |||
280 | <pre> |
||
281 | $( 'div:not(.cls) '); |
||
282 | </pre> |
||
283 | |||
284 | 1 | Александр Александров | h3. Как выбрать элементы с активной анимацией? |
285 | |||
286 | 2 | Александр Александров | <pre> |
287 | $( 'div:animated '); |
||
288 | </pre> |
||
289 | |||
290 | 1 | Александр Александров | h3. Как выбрать div-ы которые содержат класс firstclass и класс secondclass? |
291 | |||
292 | 2 | Александр Александров | <pre> |
293 | $( 'div.firstclass ').filter('.secondclass '); |
||
294 | </pre> |
||
295 | |||
296 | 1 | Александр Александров | h3. Как выбрать все div-ы с атрибутом title = test? |
297 | |||
298 | 2 | Александр Александров | <pre> |
299 | $( "div[title= 'test '] "); |
||
300 | </pre> |
||
301 | |||
302 | 1 | Александр Александров | h3. Как выбрать все отмеченные чекбоксы? |
303 | |||
304 | 2 | Александр Александров | <pre> |
305 | $( 'input:checked '); |
||
306 | </pre> |
||
307 | |||
308 | 1 | Александр Александров | h3. Как выбрать все input с type = radio? |
309 | |||
310 | 2 | Александр Александров | $( 'input:radio '); |
311 | |||
312 | 1 | Александр Александров | h3. Как выбрать видимый div с именем red, который содержит тег span? |
313 | |||
314 | 2 | Александр Александров | <pre> |
315 | $( "div[name=red]:visible:has(span) "); |
||
316 | </pre> |
||
317 | 1 | Александр Александров | |
318 | 2 | Александр Александров | h3. Что выберет этот фильтр $("a[rel~= 'external ']"); ? |
319 | 1 | Александр Александров | |
320 | 2 | Александр Александров | Все <а> с атрибутом rel содержащим external в списке значений разделенных пробелом. |
321 | |||
322 | h3. Что выберет этот фильтр $("div[name=apple]:visible:has(p)"); ? |
||
323 | |||
324 | Выберет видимый div с именем apple, который содержит тег p. |
||
325 | |||
326 | 1 | Александр Александров | h3. Найти все элементы div с классом one, а также все элементы p с классом two, затем добавить им всем класс three и визуально плавно спустить вниз? |
327 | |||
328 | 2 | Александр Александров | <pre> |
329 | $("div.one").add("p.two").addClass("three").slideDown("slow"); |
||
330 | </pre> |
||
331 | |||
332 | 1 | Александр Александров | h3. Сделать так, чтобы при нажатии на элемент <а> алертом выводилось "Hello world!". |
333 | |||
334 | 2 | Александр Александров | <pre><code class="javascript"> |
335 | jQuery(function($) { |
||
336 | $("a").click(function() { |
||
337 | alert("Hello world!"); |
||
338 | }); |
||
339 | }); |
||
340 | </code></pre> |
||
341 | |||
342 | |||
343 | 1 | Александр Александров | h3. Что быстрее document.getElementByID('txtName') или $('#txtName')? |
344 | |||
345 | 2 | Александр Александров | JavaScript запрос всегда быстрее, так как для выбора txtName метод JQuery "$('#txtName')" делает вызов document.getElementById ('txtName'). |
346 | |||
347 | 1 | Александр Александров | h3. Какая разница между $(this) и 'this' в jQuery? |
348 | 2 | Александр Александров | |
349 | $(this), когда Вы собираетесь работать с объектом jQuery. Если же Вы хотите обратиться напрямую к объекту DOM, тогда Вам нужен именно this. |
||
350 | |||
351 | Стоит учитывать, что jQuery всегда возвращает массив, даже в том случае, если найден всего один элемент (тогда он будет первым, а точнее - нулевым элементом массива). Поэтому справедливым будет выражение $(this)[0] == this. Здесь важно понимать, что обращение к элементу jQuery по индексу в квадратных скобках вернёт не объект типа jQuery, а соответствующий ему объект DOM. Если же вы хотите из массива jQuery получить первый объект в виде jQuery-сущности, используйте для этого функцию eq(). |
||
352 | |||
353 | <pre><code class="javascript"> |
||
354 | $("#mydiv")[0] == document.getElementById("mydiv") |
||
355 | </code></pre> |
||
356 | 1 | Александр Александров | |
357 | h3. Как проверить, что элемент пустой? |
||
358 | |||
359 | h3. Как проверить существует ли элемент в JQuery? |
||
360 | |||
361 | h3. Для чего используется функция jQuery ".each()"? |
||
362 | |||
363 | h3. Какая разница между $('div') и $('<div/>') в jQuery? |
||
364 | |||
365 | h3. Какая разница между parent(), parents(), closest() в jQuery? |
||
366 | |||
367 | h3. Какая разница между get() и eq() методами в jQuery? |
||
368 | |||
369 | h3. Как добавить анимацию в jQuery? |
||
370 | |||
371 | h3. Как отключить JQuery анимацию? |
||
372 | |||
373 | h3. Как остановить текущую запущенную анимацию в JQuery? |
||
374 | |||
375 | h3. В чем разница между методами .empty () .remove () и .detach () в JQuery? |
||
376 | |||
377 | h3. Какая разница между .bind() .live() .delegate() и .on()? |
||
378 | |||
379 | h3. Как создать клон объекта в JQuery? |
||
380 | |||
381 | h3. В чем разница между prop и attr? |
||
382 | |||
383 | h3. Что такое event.preventDefault? |
||
384 | |||
385 | h3. В чем разница между event.PreventDefault и event.stopPropagation? |
||
386 | |||
387 | h3. Как проверить есть переменная числом, используя JQuery 1.7+? |
||
388 | |||
389 | h3. Как проверить тип данных переменной в JQuery? |
||
390 | |||
391 | h3. Как привязать обработчик события к выбранному элементу, которое должно быть выполнено только один раз? |
||
392 | |||
393 | h3. Можно ли удерживать или задержать выполнение document.ready на некоторое время? |
||
394 | |||
395 | h3. Что такое цепочка методов в jQuery? |
||
396 | |||
397 | h3. Можем ли мы использовать JQuery, чтобы сделать AJAX запрос? |
||
398 | |||
399 | h3. Какими методами можно сделать AJAX запрос в JQuery? |
||
400 | |||
401 | h3. Что такое отсроченные(Deferred) объекты в jQuery? |
||
402 | |||
403 | h3. Что делает метод finish()? |
||
404 | |||
405 | h3. Можно ли не указывать протокол в URL когда jQuery ссылается на CDNs? |
||
406 | |||
407 | h3. Что такое jQuery плагины и какие преимущества их использования? |