SlideShare une entreprise Scribd logo
1  sur  15
Télécharger pour lire hors ligne
A quick introduction to jQuery
Shalva Usubov
shaliko@ezid.ru
http://hashtrain.com
HashTrain internal workshop
вторник, 9 ноября 2010 г.
$() vs jQuery()
$() jQuery()
Always use jQuery()
вторник, 9 ноября 2010 г.
The power of chaining
// Example 1
jQuery("div").removeClass("on").addClass("off").addClass("yellou");
// Example 2
jQuery("div").hide("slow", function(){
jQuery(this)
.addClass("done")
.find("span")
.addClass("done")
.end()
.show("slow", function(){
jQuery(this).removeClass("done");
});
});
вторник, 9 ноября 2010 г.
jQuery.noConflict()
<html>
<head>
<script src="prototype.js"></script>
<script src="jquery.js"></script>
<script>
jQuery.noConflict();
// Use jQuery via jQuery(...)
jQuery(document).ready(function(){
jQuery("div").hide();
});
// Use Prototype with $(...), etc.
$("someid").hide();
</script>
</head>
<body></body>
</html>
вторник, 9 ноября 2010 г.
Selectors
jQuery("p")
jQuery("#some-id")
jQuery(".some-class")
jQuery("#container div.gallery")
jQuery("body > div");
jQuery("body > div: has(a)");
jQuery("a[href$=pdf]");
jQuery("ul li:first")
вторник, 9 ноября 2010 г.
Cache jQuery Objects
jQuery("div.gallery").bind("click", function(){...});
jQuery("div.gallery").css("background-color", "yellow");
jQuery("div.gallery").fadeIn("fast");
// Instead, first save the object to a local variable
var $gallery = jQuery("div.gallery");
$gallery.bind("click", function(){...});
$gallery.css("background-color", "yellow");
$gallery.fadeIn("fast");
вторник, 9 ноября 2010 г.
Creating New Elements
jQuery("<h1>Hello!</h1>").appendTo("body");
jQuery("<a href='http://hashtrain.com'>HashTrain</a>")
.insertAfter("div.footer p");
вторник, 9 ноября 2010 г.
.live()
jQuery("a.click").bind("click", function() {
alert("Base click!");
});
jQuery("a.live").live("click", function() {
alert("Live click!");
});
// This new element also matches the selector .clickme, but since
it was added after the call to .bind(), clicks on it will do
nothing.
jQuery("body").append("<a href='http://hashtrain.com'
class='click'>HashTrain</a>");
// Then clicks on the new element will also trigger the handler.
jQuery("body").append("<a href='http://hashtrain.com'
class='live'>HashTrain</a>");
вторник, 9 ноября 2010 г.
Namespaced Events
// Add handler
jQuery(".class").bind("click.namespace", function(){
// do something
});
// call handler
jQuery(".class").trigger("click.namespace");
// remove all the handlers in a given namespace
jQuery(".class").unbind("click.namespace");
вторник, 9 ноября 2010 г.
Ajax
jQuery("#body").load("/boby_content")
// AJAX base function
jQuery.ajax({
type: "POST",
url: "/articles",
data: "page=1&per_page=10",
success: function(msg){
alert( "Data Saved: " + msg );
}
});
вторник, 9 ноября 2010 г.
AJAX
// GET
jQuery.get("/articles", function(data){
alert("Data Loaded: " + data);
});
// POST
jQuery.post("/articles", { parent_id: 7, visible: 1 }, function
(data) {
alert("Data Loaded: " + data);
});
// GETJSON
jQuery.getJSON("/articles.js", { page: 1, per_page: 10 }, function
(json) {
alert("JSON Data: " + json);
});
// GETScript - Load JavaScript file and execute it.
jQuery.getScript("/articles.js");
вторник, 9 ноября 2010 г.
My own function
jQuery.fn.myFunction = function() {
return jQuery(this).addClass("changed");
}
// Alternate syntax
jQuery.fn.extend({
myFunction: function() {
return jQuery(this).addClass("changed");
}
});
// And now, use it like this:
jQuery(".changePlease").myFunction();
вторник, 9 ноября 2010 г.
My own global function
jQuery.globalFunction = function() {
alert("Hi!");
};
// Alternate syntax
jQuery.extend({
functionOne: function() {
alert("Hi!");
}
});
// Usage
jQuery.globalFunction();
вторник, 9 ноября 2010 г.
jQuery on Rails
Install
• .script/plugin install git://github.com/aaronchi/jrails.git
Project Site
• code.google.com/p/ennerchi
Web Site
• www.ennerchi.com/projects/jrails
Group Site
• groups.google.com/group/jrails
jRails is a drop-in jQuery replacement for the Rails Prototype/script.aculo.us helpers.
вторник, 9 ноября 2010 г.
jQuery docs
• jQuery wiki - http://docs.jquery.com
• jQuery API - http://api.jquery.com
• "Visual jQuery" from Remy Sharp and
Yehuda Katz - http://visualjquery.com
вторник, 9 ноября 2010 г.

Contenu connexe

Tendances

Произвольная смена дизайна системного скроллбара
Произвольная смена дизайна системного скроллбараПроизвольная смена дизайна системного скроллбара
Произвольная смена дизайна системного скроллбараDevDay
 
МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016Anastasia Goryacheva
 
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...Ontico
 
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020OdessaJS Conf
 
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...CodeFest
 
C# Web. Занятие 12.
C# Web. Занятие 12.C# Web. Занятие 12.
C# Web. Занятие 12.Igor Shkulipa
 
Как не утонуть в мегабайтах JS-кода
Как не утонуть в мегабайтах JS-кодаКак не утонуть в мегабайтах JS-кода
Как не утонуть в мегабайтах JS-кодаtfmailru
 
"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"CommonJS для браузера", Антон Шувалов, MoscowJS 15"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"CommonJS для браузера", Антон Шувалов, MoscowJS 15MoscowJS
 
ДАМП 2015 Екатеринбург
ДАМП 2015 ЕкатеринбургДАМП 2015 Екатеринбург
ДАМП 2015 ЕкатеринбургAlexey Ivanov
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackAlexey Ivanov
 
C# Web. Занятие 13.
C# Web. Занятие 13.C# Web. Занятие 13.
C# Web. Занятие 13.Igor Shkulipa
 
VolgaCTF 2012 разбор заданий
VolgaCTF 2012 разбор заданийVolgaCTF 2012 разбор заданий
VolgaCTF 2012 разбор заданийBlackFan
 
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15MoscowJS
 
Yii development
Yii developmentYii development
Yii developmentMageCloud
 
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)Ontico
 
I tmozg js_school_jquery
I tmozg js_school_jqueryI tmozg js_school_jquery
I tmozg js_school_jqueryITmozg
 
WP Kitchen Meetup Spring 2015 - Виктор Кулебякин: WordPress JavaScript Utils
WP Kitchen Meetup Spring 2015 - Виктор Кулебякин: WordPress JavaScript UtilsWP Kitchen Meetup Spring 2015 - Виктор Кулебякин: WordPress JavaScript Utils
WP Kitchen Meetup Spring 2015 - Виктор Кулебякин: WordPress JavaScript UtilsWordCamp Kyiv
 

Tendances (19)

Произвольная смена дизайна системного скроллбара
Произвольная смена дизайна системного скроллбараПроизвольная смена дизайна системного скроллбара
Произвольная смена дизайна системного скроллбара
 
МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016МРТ для данных, Frontend Conf 2016
МРТ для данных, Frontend Conf 2016
 
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
Радости и гадости регрессионного тестирования вёрстки / Алексей Малейков (HTM...
 
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
'The best practices' by KONSTANTIN KULAKSYZ at OdessaJS'2020
 
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
CodeFest 2012. Рычков Д. — Почему перед написанием кеша вам стоит поговорить ...
 
C# Web. Занятие 12.
C# Web. Занятие 12.C# Web. Занятие 12.
C# Web. Занятие 12.
 
Как не утонуть в мегабайтах JS-кода
Как не утонуть в мегабайтах JS-кодаКак не утонуть в мегабайтах JS-кода
Как не утонуть в мегабайтах JS-кода
 
"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"CommonJS для браузера", Антон Шувалов, MoscowJS 15"CommonJS для браузера", Антон Шувалов, MoscowJS 15
"CommonJS для браузера", Антон Шувалов, MoscowJS 15
 
ДАМП 2015 Екатеринбург
ДАМП 2015 ЕкатеринбургДАМП 2015 Екатеринбург
ДАМП 2015 Екатеринбург
 
Внутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpackВнутреннее устройство и оптимизация бандла webpack
Внутреннее устройство и оптимизация бандла webpack
 
C# Web. Занятие 13.
C# Web. Занятие 13.C# Web. Занятие 13.
C# Web. Занятие 13.
 
VolgaCTF 2012 разбор заданий
VolgaCTF 2012 разбор заданийVolgaCTF 2012 разбор заданий
VolgaCTF 2012 разбор заданий
 
Tapestry it is simple
Tapestry it is simpleTapestry it is simple
Tapestry it is simple
 
Files and JS
Files and JSFiles and JS
Files and JS
 
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
"Dependency Injection. JavaScript.", Сергей Камардин, MoscowJS 15
 
Yii development
Yii developmentYii development
Yii development
 
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
55+1 прием для улучшения Javascript-кода / Татьяна Бабич (Simbirsoft)
 
I tmozg js_school_jquery
I tmozg js_school_jqueryI tmozg js_school_jquery
I tmozg js_school_jquery
 
WP Kitchen Meetup Spring 2015 - Виктор Кулебякин: WordPress JavaScript Utils
WP Kitchen Meetup Spring 2015 - Виктор Кулебякин: WordPress JavaScript UtilsWP Kitchen Meetup Spring 2015 - Виктор Кулебякин: WordPress JavaScript Utils
WP Kitchen Meetup Spring 2015 - Виктор Кулебякин: WordPress JavaScript Utils
 

Similaire à Quick introduction jQuery

Web весна 2012 лекция 9
Web весна 2012 лекция 9Web весна 2012 лекция 9
Web весна 2012 лекция 9Technopark
 
Опыт разработки эффективного SPA
Опыт разработки эффективного SPAОпыт разработки эффективного SPA
Опыт разработки эффективного SPAEugene Abrosimov
 
XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.Дмитрий Бумов
 
I tmozg js_school
I tmozg js_schoolI tmozg js_school
I tmozg js_schoolITmozg
 
Web internship java script
Web internship   java scriptWeb internship   java script
Web internship java scriptNoveo
 
FPUG Dzyga presentation
FPUG Dzyga presentationFPUG Dzyga presentation
FPUG Dzyga presentationIvan Filimonov
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationAndrii Dzynia
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobileUA Mobile
 
Школа-студия разработки для iOS. Лекция 4. Работа с данными
Школа-студия разработки для iOS. Лекция 4. Работа с даннымиШкола-студия разработки для iOS. Лекция 4. Работа с данными
Школа-студия разработки для iOS. Лекция 4. Работа с даннымиГлеб Тарасов
 
Web весна 2013 лекция 9
Web весна 2013 лекция 9Web весна 2013 лекция 9
Web весна 2013 лекция 9Technopark
 
Drupal 7 и history.js или как ajax инфицировать сайт
Drupal 7 и history.js или как ajax инфицировать сайтDrupal 7 и history.js или как ajax инфицировать сайт
Drupal 7 и history.js или как ajax инфицировать сайтDrupalCamp Kyiv Рысь
 
Экскурсия по Flutter SDK
Экскурсия по Flutter SDKЭкскурсия по Flutter SDK
Экскурсия по Flutter SDKSergey Penkovsky
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Andrey Rebrov
 
Александр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBАлександр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBDataArt
 
Сергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3CСергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3CYandex
 

Similaire à Quick introduction jQuery (20)

course js day 4
course js day 4course js day 4
course js day 4
 
Jsfwdays 2013-2
Jsfwdays 2013-2Jsfwdays 2013-2
Jsfwdays 2013-2
 
Web весна 2012 лекция 9
Web весна 2012 лекция 9Web весна 2012 лекция 9
Web весна 2012 лекция 9
 
Опыт разработки эффективного SPA
Опыт разработки эффективного SPAОпыт разработки эффективного SPA
Опыт разработки эффективного SPA
 
XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.XSS. Обходы фильтров и защит.
XSS. Обходы фильтров и защит.
 
I tmozg js_school
I tmozg js_schoolI tmozg js_school
I tmozg js_school
 
Web internship java script
Web internship   java scriptWeb internship   java script
Web internship java script
 
FPUG Dzyga presentation
FPUG Dzyga presentationFPUG Dzyga presentation
FPUG Dzyga presentation
 
Devcamp nodejs-2010
Devcamp nodejs-2010Devcamp nodejs-2010
Devcamp nodejs-2010
 
iOS and Android Mobile Test Automation
iOS and Android Mobile Test AutomationiOS and Android Mobile Test Automation
iOS and Android Mobile Test Automation
 
Асинхронный JavaScript
Асинхронный JavaScriptАсинхронный JavaScript
Асинхронный JavaScript
 
Mobile automation uamobile
Mobile automation uamobileMobile automation uamobile
Mobile automation uamobile
 
Школа-студия разработки для iOS. Лекция 4. Работа с данными
Школа-студия разработки для iOS. Лекция 4. Работа с даннымиШкола-студия разработки для iOS. Лекция 4. Работа с данными
Школа-студия разработки для iOS. Лекция 4. Работа с данными
 
Web весна 2013 лекция 9
Web весна 2013 лекция 9Web весна 2013 лекция 9
Web весна 2013 лекция 9
 
Drupal 7 и history.js или как ajax инфицировать сайт
Drupal 7 и history.js или как ajax инфицировать сайтDrupal 7 и history.js или как ajax инфицировать сайт
Drupal 7 и history.js или как ajax инфицировать сайт
 
Drupal 7 and History.js
Drupal 7 and History.jsDrupal 7 and History.js
Drupal 7 and History.js
 
Экскурсия по Flutter SDK
Экскурсия по Flutter SDKЭкскурсия по Flutter SDK
Экскурсия по Flutter SDK
 
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
Бодрящий микс из Selenium и TestNG- регрессионное тестирование руками разрабо...
 
Александр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEBАлександр Кашеверов - Коротко про WEB
Александр Кашеверов - Коротко про WEB
 
Сергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3CСергей Константинов — Что интересного готовит нам W3C
Сергей Константинов — Что интересного готовит нам W3C
 

Quick introduction jQuery

  • 1. A quick introduction to jQuery Shalva Usubov shaliko@ezid.ru http://hashtrain.com HashTrain internal workshop вторник, 9 ноября 2010 г.
  • 2. $() vs jQuery() $() jQuery() Always use jQuery() вторник, 9 ноября 2010 г.
  • 3. The power of chaining // Example 1 jQuery("div").removeClass("on").addClass("off").addClass("yellou"); // Example 2 jQuery("div").hide("slow", function(){ jQuery(this) .addClass("done") .find("span") .addClass("done") .end() .show("slow", function(){ jQuery(this).removeClass("done"); }); }); вторник, 9 ноября 2010 г.
  • 4. jQuery.noConflict() <html> <head> <script src="prototype.js"></script> <script src="jquery.js"></script> <script> jQuery.noConflict(); // Use jQuery via jQuery(...) jQuery(document).ready(function(){ jQuery("div").hide(); }); // Use Prototype with $(...), etc. $("someid").hide(); </script> </head> <body></body> </html> вторник, 9 ноября 2010 г.
  • 5. Selectors jQuery("p") jQuery("#some-id") jQuery(".some-class") jQuery("#container div.gallery") jQuery("body > div"); jQuery("body > div: has(a)"); jQuery("a[href$=pdf]"); jQuery("ul li:first") вторник, 9 ноября 2010 г.
  • 6. Cache jQuery Objects jQuery("div.gallery").bind("click", function(){...}); jQuery("div.gallery").css("background-color", "yellow"); jQuery("div.gallery").fadeIn("fast"); // Instead, first save the object to a local variable var $gallery = jQuery("div.gallery"); $gallery.bind("click", function(){...}); $gallery.css("background-color", "yellow"); $gallery.fadeIn("fast"); вторник, 9 ноября 2010 г.
  • 7. Creating New Elements jQuery("<h1>Hello!</h1>").appendTo("body"); jQuery("<a href='http://hashtrain.com'>HashTrain</a>") .insertAfter("div.footer p"); вторник, 9 ноября 2010 г.
  • 8. .live() jQuery("a.click").bind("click", function() { alert("Base click!"); }); jQuery("a.live").live("click", function() { alert("Live click!"); }); // This new element also matches the selector .clickme, but since it was added after the call to .bind(), clicks on it will do nothing. jQuery("body").append("<a href='http://hashtrain.com' class='click'>HashTrain</a>"); // Then clicks on the new element will also trigger the handler. jQuery("body").append("<a href='http://hashtrain.com' class='live'>HashTrain</a>"); вторник, 9 ноября 2010 г.
  • 9. Namespaced Events // Add handler jQuery(".class").bind("click.namespace", function(){ // do something }); // call handler jQuery(".class").trigger("click.namespace"); // remove all the handlers in a given namespace jQuery(".class").unbind("click.namespace"); вторник, 9 ноября 2010 г.
  • 10. Ajax jQuery("#body").load("/boby_content") // AJAX base function jQuery.ajax({ type: "POST", url: "/articles", data: "page=1&per_page=10", success: function(msg){ alert( "Data Saved: " + msg ); } }); вторник, 9 ноября 2010 г.
  • 11. AJAX // GET jQuery.get("/articles", function(data){ alert("Data Loaded: " + data); }); // POST jQuery.post("/articles", { parent_id: 7, visible: 1 }, function (data) { alert("Data Loaded: " + data); }); // GETJSON jQuery.getJSON("/articles.js", { page: 1, per_page: 10 }, function (json) { alert("JSON Data: " + json); }); // GETScript - Load JavaScript file and execute it. jQuery.getScript("/articles.js"); вторник, 9 ноября 2010 г.
  • 12. My own function jQuery.fn.myFunction = function() { return jQuery(this).addClass("changed"); } // Alternate syntax jQuery.fn.extend({ myFunction: function() { return jQuery(this).addClass("changed"); } }); // And now, use it like this: jQuery(".changePlease").myFunction(); вторник, 9 ноября 2010 г.
  • 13. My own global function jQuery.globalFunction = function() { alert("Hi!"); }; // Alternate syntax jQuery.extend({ functionOne: function() { alert("Hi!"); } }); // Usage jQuery.globalFunction(); вторник, 9 ноября 2010 г.
  • 14. jQuery on Rails Install • .script/plugin install git://github.com/aaronchi/jrails.git Project Site • code.google.com/p/ennerchi Web Site • www.ennerchi.com/projects/jrails Group Site • groups.google.com/group/jrails jRails is a drop-in jQuery replacement for the Rails Prototype/script.aculo.us helpers. вторник, 9 ноября 2010 г.
  • 15. jQuery docs • jQuery wiki - http://docs.jquery.com • jQuery API - http://api.jquery.com • "Visual jQuery" from Remy Sharp and Yehuda Katz - http://visualjquery.com вторник, 9 ноября 2010 г.