Проект

Общее

Профиль

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 плагины и какие преимущества их использования?
Go to top