วันนี้เรามาลองทำความรู้จักกับ JavaScript Framework กันซักเจ้าหนึ่งที่เขานิยมนำมาใช้ในการจัดการ JavaScript แทนการเขียน JavaScript กันแบบตรงๆนะครับ ทำไมเราต้องใช้ JS Framework ทำไมเราไม่เขียนเอง ก็อันเนื่องมาจากหลายสาเหตุ เช่น ความเข้ากันกับ Web Browser ชนิดต่างๆ ซึ่งเราต้องมีการเช็คอยู่เสมอว่า JS ที่เราเขียนนั้น สามารถแสดงผลได้ดีใน FF (FireFox), (IE) Internet Explore, (SR) Safari หรือเปล่า แค่ ตย. นี้เราก็เห็นว่ามันอาจจะยุ่งอยากในการเขียน จึงเป็นสิ่งที่เรา่น่าจะหา Framework มาแทนดีกว่า ซึ่งในที่้นี้ผมก็เลือกที่จะใช้ jQuery เรามาลองดูกันนะครับ ว่า jQuery ทำไรได้บ้างนะครับ
ก่อนอื่น เรา้ต้องไปดาวโหลดไฟล์ jQuery จากเว็บไซด์ [http://www.jquery.com|jQuery หรือว่า ถ้าเราคิดว่าเราจะมีการใช้เว็บที่เราเขียนมีการเชื่อมต่ออินเตอร์เน็ตตลอดเวลาเราก็สามารถใช้วิธีการลิงค์ผ่าน Google API ได้เลยโดยไม่ต้องมาทำการดาวโหลด jQuery นะครับ
jQuery นั้นมีวิธีการเข้าถึงตัว Object ของ html ซึ่งอาจจะเรียกว่า DOM (Document Object Model) ได้โดยใช้สัญลักษณ์ $ แบ่งเป็นคร่าวๆ ได้ดังนี้
1. $('#ชื่อ id') เช่น $('textName')
2. $('.ชื่อ css class') เช่น $('.MyCss')
3. $('ชื่อ tag') เช่น $('body')
เริ่มแรกเราต้องทำการสร้างการเชื่อมต่อกับ Google API เพื่อจะดึง jQuery มาใช้งาน ในกรณีเป็นกรณีที่เว็บที่เราจะเขียนมีการเชื่อมต่ออินเตอร์เน็ตตลอดเวลานะครับ
<script src="http://www.google.com/jsapi"></script>
<SCRIPT LANGUAGE="JavaScript">google.load("jquery", "1.3.2");</SCRIPT>หลังจากนั้นก็ทำการสร้าง ฟอร์มเพื่อมาทดสอบการใ้ช้งาน jQuery
<form id="pageForm" runat="server">
<div id="dvText" class="MyCSS"></div><hr/>
Name: >input type="type" id="tbText" name="tbText" /><br/><br/>
<input type="button" id="bnClick" value="Show Me" />
</form>
หลังจากนั้นก็ลองใช้คำสั่งในการทดสอบ
<SCRIPT LANGUAGE="JavaScript">
$(document).ready(
function(){
$('#tbText').val('Hello');
$('.MyCSS').css('display', 'none');
// Controls with event handle
$('#bnClick').click(
function(){
$('div').css('display', 'block');
var text = $('#tbText').val();
$('div').html('<b>Your text is ' + text +'....</b>');
}
);
}
);
</SCRIPT>ฟังก์ชั่น ready ที่เห็นข้างบนเป็นฟังก์ชั่นที่ใช้คู่กับ document พอเขียนแล้วคือ $(document).ready() เป็นการตรวจสอบการทำงานว่า ได้มีการ load html object ต่างๆ ขึ้นมาบนหน้าเว็บเรียบร้อยแล้ว ก่อนที่จะมีการเรียก function() การทำงานภายในค่ำสั่ง function นั้นๆ เพื่อที่จะเป็นการตรวจสอบว่า บางที เรามีการเขียน JS เรียกไว้ แต่ว่าหน้าเว็บยังโหลดไม่เสร็จ มันก็จะฟ้องข้อผิดพลาดมาดังนั้น function มีประโยชน์มาก
ลองเอา code เต็มๆ มาดูกันนะครับ
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>JQuery - Tutorial 1</TITLE>
<script src="http://www.google.com/jsapi"></script>
<SCRIPT LANGUAGE="JavaScript">google.load("jquery", "1.3.2");</SCRIPT>
<SCRIPT LANGUAGE="JavaScript">
$(document).ready(
function(){
$('#tbText').val('Hello');
$('.MyCSS').css('display', 'none');
// Controls with event handle
$('#bnClick').click(
function(){
$('div').css('display', 'block');
var text = $('#tbText').val();
$('div').html('<b>Your text is ' + text +'....</b>');
}
);
}
);
</SCRIPT>
<style>
.MyCSS{
text-decoration:underline;
}
</style>
</HEAD>
<BODY>
<form id="pageForm" runat="server">
<div id="dvText" class="MyCSS"></div><hr/>
Name: >input type="type" id="tbText" name="tbText" /><br/><br/>
<input type="button" id="bnClick" value="Show Me" />
</form>
</BODY>
</HTML>