SlideShare a Scribd company logo
1 of 73
Download to read offline
Jiayun Zhou
2008.11.22
   TWJUG
JavaScript Library
Query
Database?
SQL?
Select...
document.getElementById(quot;idquot;)
document.getElementById(quot;idquot;)


jQuery:
            $(quot;#idquot;)
The jQuery function

 $(...) = jQuery(...)
document.getElementsByTagName
            (quot;divquot;)
document.getElementsByTagName
            (quot;divquot;)


jQuery:
           $(quot;divquot;)
<input name=quot;mailquot; type=quot;textquot; />




document.getElementsByName
              (quot;mailquot;)
<input name=quot;mailquot; type=quot;textquot; />




document.getElementsByName
               (quot;mailquot;)


jQuery:
   $(quot;input[name='mail']quot;)
<input name=quot;mailquot; type=quot;textquot; />




document.getElementsByName
               (quot;mailquot;)


jQuery:
     $(quot;*[name='mail']quot;)
The power of Selectors
$(quot;*[name='mail']quot;)
$(...)
jQuery Object
All the magic
Attributes API
$(quot;imgquot;).attr(quot;srcquot;)


$(quot;imgquot;).attr(quot;srcquot;,
quot;/new/icon.pngquot;)
Traversing API
Manipulation API
$(quot;divquot;).html()


$(quot;divquot;).html(quot;<span class='red'>Hello
      <b>World</b></span>quot;)
CSS API
$(quot;divquot;).css(quot;colorquot;)


$(quot;divquot;).css(quot;colorquot;,quot;redquot;)
Events API
$(quot;pquot;).click(fn)


$(quot;pquot;).click(function() {
 // do something
});


$(quot;pquot;).click()
Effects API
$(quot;pquot;).show()


$(quot;pquot;).hide()
Ajax API
$(quot;pquot;).load( url, [data], [callback] )


    $(quot;pquot;).load(quot;another.htmlquot;)
Chaining
$(quot;aquot;).attr(quot;hrefquot;,
quot;foo.htmlquot;).show().html(quot;fooquot;);
Ex. 1 – Mousedown
$(document).ready(function(){
 $(quot;aquot;).mousedown(
      function() {
       $(this).click(function () { return false; });
       goURL($(this).attr(quot;hrefquot;));
      });
});
$(document).ready(function(){
 $(quot;a[target='middlearea']quot;).mousedown(
      function() {
       $(this).click(function () { return false; });
       goIframeURL($(this).attr(quot;hrefquot;));
      });
});
$(document).ready(function(){
 $(quot;a[target!='middlearea']quot;).mousedown(
      function() {
       $(this).click(function () { return false; });
       goURL($(this).attr(quot;hrefquot;));
      });
});
Try it yourself
Demo 1
Ex. 2 – Marquee
$(document).ready(function(){
 $.ajaxSetup({
      cache: false
 });
 setTimeout(quot;loadInfo()quot;, 60000);
 setTimeout(quot;loadMar()quot;, 60000);
});
function loadInfo() {
    $(quot;#infoULquot;).load(quot;header.do?method=infoquot;,
      null, infoCallback);
}
function loadMar() {
    $(quot;#marquot;).load(quot;header.do?method=marqueequot;,
      null, marCallback);
}
function infoCallback(responseText, textStatus,
      XMLHttpRequest) {
    setTimeout(quot;loadInfo()quot;, 60000);
}
function marCallback(responseText, textStatus,
      XMLHttpRequest) {
    setTimeout(quot;loadMar()quot;, 60000);
}
Demo 2
Ex. 3 – On Idle Action
include.jsp

$(document).ready(function(){
  $(quot;iframequot;).load(function(){
      $.cookie('lastAction', new Date().getTime());
  });
});
index.jsp

$(document).ready(function(){
  setTimeout(quot;checkLastAction()quot;, 60000);
});
function checkLastAction() {
 var interval = new Date().getTime() -
                                $.cookie('lastAction');
 if (interval > (20 * 60 * 1000)) {
       $(quot;iframe[name='bodyFrame']quot;)
            .attr(quot;contentWindowquot;).location.href =
             $(quot;iframe[name='bodyFrame']quot;).attr(quot;srcquot;);

         $.cookie('lastAction', new Date().getTime());
    }
    setTimeout(quot;checkLastAction()quot;, 60000);
}
Thanks

More Related Content

What's hot

Clang-tidy: путешествие внутрь AST C++
Clang-tidy: путешествие внутрь AST C++Clang-tidy: путешествие внутрь AST C++
Clang-tidy: путешествие внутрь AST C++corehard_by
 
珠三角技术沙龙新语言场 C++11
珠三角技术沙龙新语言场 C++11珠三角技术沙龙新语言场 C++11
珠三角技术沙龙新语言场 C++11翀 周
 
An introduction to functional programming with Go [redux]
An introduction to functional programming with Go [redux]An introduction to functional programming with Go [redux]
An introduction to functional programming with Go [redux]Eleanor McHugh
 
RxSwift 예제로 감잡기
RxSwift 예제로 감잡기RxSwift 예제로 감잡기
RxSwift 예제로 감잡기Yongha Yoo
 
modern javascript, unobtrusive javascript, jquery
modern javascript, unobtrusive javascript, jquerymodern javascript, unobtrusive javascript, jquery
modern javascript, unobtrusive javascript, jqueryAdam Zygadlewicz
 
OpenResty/Lua 70+ Advanced Programming Skills and Optimization tips
OpenResty/Lua 70+ Advanced Programming Skills and Optimization tipsOpenResty/Lua 70+ Advanced Programming Skills and Optimization tips
OpenResty/Lua 70+ Advanced Programming Skills and Optimization tipsHo Kim
 
EJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSEJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSDarwin Durand
 
program data rawat inap sederhana
program data rawat inap sederhanaprogram data rawat inap sederhana
program data rawat inap sederhanaEghan Jaya
 
C# Starter L01-Intro and Warm-up
C# Starter L01-Intro and Warm-upC# Starter L01-Intro and Warm-up
C# Starter L01-Intro and Warm-upMohammad Shaker
 
Java лаб13
Java лаб13Java лаб13
Java лаб13Enkhee99
 
Тененёв Анатолий, Boost.Asio в алгоритмической торговле
Тененёв Анатолий, Boost.Asio в алгоритмической торговлеТененёв Анатолий, Boost.Asio в алгоритмической торговле
Тененёв Анатолий, Boost.Asio в алгоритмической торговлеPlatonov Sergey
 
[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30
[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30
[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30Chris Ohk
 
Angular 2 не так уж и плох... А если задуматься, то и просто хорош / Алексей ...
Angular 2 не так уж и плох... А если задуматься, то и просто хорош / Алексей ...Angular 2 не так уж и плох... А если задуматься, то и просто хорош / Алексей ...
Angular 2 не так уж и плох... А если задуматься, то и просто хорош / Алексей ...Ontico
 
変態的PHPフレームワーク rhaco
変態的PHPフレームワーク rhaco変態的PHPフレームワーク rhaco
変態的PHPフレームワーク rhacomakoto tsuyuki
 
Laporan ai modul 3-if b 2014-14102055-deprilana ego prakasa
Laporan ai modul 3-if b 2014-14102055-deprilana ego prakasaLaporan ai modul 3-if b 2014-14102055-deprilana ego prakasa
Laporan ai modul 3-if b 2014-14102055-deprilana ego prakasaDeprilana Ego Prakasa
 

What's hot (20)

Clang-tidy: путешествие внутрь AST C++
Clang-tidy: путешествие внутрь AST C++Clang-tidy: путешествие внутрь AST C++
Clang-tidy: путешествие внутрь AST C++
 
All set1
All set1All set1
All set1
 
珠三角技术沙龙新语言场 C++11
珠三角技术沙龙新语言场 C++11珠三角技术沙龙新语言场 C++11
珠三角技术沙龙新语言场 C++11
 
An introduction to functional programming with Go [redux]
An introduction to functional programming with Go [redux]An introduction to functional programming with Go [redux]
An introduction to functional programming with Go [redux]
 
Proyecto Final Android-SQLite
Proyecto Final Android-SQLiteProyecto Final Android-SQLite
Proyecto Final Android-SQLite
 
デバッグ戦略
デバッグ戦略デバッグ戦略
デバッグ戦略
 
RxSwift 예제로 감잡기
RxSwift 예제로 감잡기RxSwift 예제로 감잡기
RxSwift 예제로 감잡기
 
modern javascript, unobtrusive javascript, jquery
modern javascript, unobtrusive javascript, jquerymodern javascript, unobtrusive javascript, jquery
modern javascript, unobtrusive javascript, jquery
 
Testování prakticky
Testování praktickyTestování prakticky
Testování prakticky
 
OpenResty/Lua 70+ Advanced Programming Skills and Optimization tips
OpenResty/Lua 70+ Advanced Programming Skills and Optimization tipsOpenResty/Lua 70+ Advanced Programming Skills and Optimization tips
OpenResty/Lua 70+ Advanced Programming Skills and Optimization tips
 
EJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOSEJEMPLOS DESARROLLADOS
EJEMPLOS DESARROLLADOS
 
program data rawat inap sederhana
program data rawat inap sederhanaprogram data rawat inap sederhana
program data rawat inap sederhana
 
C# Starter L01-Intro and Warm-up
C# Starter L01-Intro and Warm-upC# Starter L01-Intro and Warm-up
C# Starter L01-Intro and Warm-up
 
Java лаб13
Java лаб13Java лаб13
Java лаб13
 
Aplicacion turbogenerador java
Aplicacion turbogenerador javaAplicacion turbogenerador java
Aplicacion turbogenerador java
 
Тененёв Анатолий, Boost.Asio в алгоритмической торговле
Тененёв Анатолий, Boost.Asio в алгоритмической торговлеТененёв Анатолий, Boost.Asio в алгоритмической торговле
Тененёв Анатолий, Boost.Asio в алгоритмической торговле
 
[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30
[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30
[C++ Korea] Effective Modern C++ Study, Item 27, 29 - 30
 
Angular 2 не так уж и плох... А если задуматься, то и просто хорош / Алексей ...
Angular 2 не так уж и плох... А если задуматься, то и просто хорош / Алексей ...Angular 2 не так уж и плох... А если задуматься, то и просто хорош / Алексей ...
Angular 2 не так уж и плох... А если задуматься, то и просто хорош / Алексей ...
 
変態的PHPフレームワーク rhaco
変態的PHPフレームワーク rhaco変態的PHPフレームワーク rhaco
変態的PHPフレームワーク rhaco
 
Laporan ai modul 3-if b 2014-14102055-deprilana ego prakasa
Laporan ai modul 3-if b 2014-14102055-deprilana ego prakasaLaporan ai modul 3-if b 2014-14102055-deprilana ego prakasa
Laporan ai modul 3-if b 2014-14102055-deprilana ego prakasa
 

More from koji lin

サーバーサイドでの非同期処理で色々やったよ
サーバーサイドでの非同期処理で色々やったよサーバーサイドでの非同期処理で色々やったよ
サーバーサイドでの非同期処理で色々やったよkoji lin
 
Using armeria to write your RPC
Using armeria to write your RPCUsing armeria to write your RPC
Using armeria to write your RPCkoji lin
 
使用 Java 上的 future/promise API
使用 Java 上的 future/promise  API使用 Java 上的 future/promise  API
使用 Java 上的 future/promise APIkoji lin
 
Annotation processing and code gen
Annotation processing and code genAnnotation processing and code gen
Annotation processing and code genkoji lin
 
Use Lambdas in Android
Use Lambdas in AndroidUse Lambdas in Android
Use Lambdas in Androidkoji lin
 
docker intro
docker introdocker intro
docker introkoji lin
 
Java8 time
Java8 timeJava8 time
Java8 timekoji lin
 
Java8 stream
Java8 streamJava8 stream
Java8 streamkoji lin
 
Java8 lambda
Java8 lambdaJava8 lambda
Java8 lambdakoji lin
 
CompletableFuture
CompletableFutureCompletableFuture
CompletableFuturekoji lin
 
Raspberry Pi with Java
Raspberry Pi with JavaRaspberry Pi with Java
Raspberry Pi with Javakoji lin
 
Services you can use to monitor and analyze mobile app
Services you can use to monitor and analyze mobile appServices you can use to monitor and analyze mobile app
Services you can use to monitor and analyze mobile appkoji lin
 
Programming with Threads in Java
Programming with Threads in JavaProgramming with Threads in Java
Programming with Threads in Javakoji lin
 
山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 -  回歸到最純樸的開發山頂洞人日記 -  回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發koji lin
 
Android Location-based應用開發分享
Android Location-based應用開發分享Android Location-based應用開發分享
Android Location-based應用開發分享koji lin
 

More from koji lin (18)

サーバーサイドでの非同期処理で色々やったよ
サーバーサイドでの非同期処理で色々やったよサーバーサイドでの非同期処理で色々やったよ
サーバーサイドでの非同期処理で色々やったよ
 
G1GC
G1GCG1GC
G1GC
 
Using armeria to write your RPC
Using armeria to write your RPCUsing armeria to write your RPC
Using armeria to write your RPC
 
使用 Java 上的 future/promise API
使用 Java 上的 future/promise  API使用 Java 上的 future/promise  API
使用 Java 上的 future/promise API
 
Annotation processing and code gen
Annotation processing and code genAnnotation processing and code gen
Annotation processing and code gen
 
Jcconf
JcconfJcconf
Jcconf
 
Use Lambdas in Android
Use Lambdas in AndroidUse Lambdas in Android
Use Lambdas in Android
 
docker intro
docker introdocker intro
docker intro
 
Java8 time
Java8 timeJava8 time
Java8 time
 
Java8 stream
Java8 streamJava8 stream
Java8 stream
 
Java8 lambda
Java8 lambdaJava8 lambda
Java8 lambda
 
Idea13
Idea13Idea13
Idea13
 
CompletableFuture
CompletableFutureCompletableFuture
CompletableFuture
 
Raspberry Pi with Java
Raspberry Pi with JavaRaspberry Pi with Java
Raspberry Pi with Java
 
Services you can use to monitor and analyze mobile app
Services you can use to monitor and analyze mobile appServices you can use to monitor and analyze mobile app
Services you can use to monitor and analyze mobile app
 
Programming with Threads in Java
Programming with Threads in JavaProgramming with Threads in Java
Programming with Threads in Java
 
山頂洞人日記 - 回歸到最純樸的開發
山頂洞人日記 -  回歸到最純樸的開發山頂洞人日記 -  回歸到最純樸的開發
山頂洞人日記 - 回歸到最純樸的開發
 
Android Location-based應用開發分享
Android Location-based應用開發分享Android Location-based應用開發分享
Android Location-based應用開發分享
 

JQuery