การใช้งาน live และ die ใน jQuery 1.4

Bookmark and Share

 ใน jQuery เวอร์ชั่น 1.4 มี event ที่ชื่อ live และ die ที่ทำให้เราสามารถกำหนด หรือยกเลิก event ต่างๆ ให้กับ elements ที่ถูกดึงมาแสดงด้วย ajax หรือที่เรียกว่าข้อมูลจาก xhr  ได้

ดูตัวอย่างประกอบ

div id=i_content
 

 


div id=i_debug
 

 



 

เมื่อเราคลิกที่ div id=i_content สีเหลืองอ่อน
ก็จะมีการนำ span id=i_span สีฟ้า และข้อความว่า message มาแสดงใน div สีเหลืองอ่อน
ด้วยคำสั่ง
 

$("#i_content").click(function(){
   var xhrData = "<span id='i_span'>message</span>"
   $("#i_content").html(xhrData);
});

ถ้าเราต้องการเรียก span id=i_span สีฟ้า นั้นมาใช้งานอีกที เช่น ต้องการนำข้อความใน span id=i_span สีฟ้า มาแสดงใน div id=i_debug สีแดงอ่อน
ด้วยคำสั่งข้างล่าง ต่อไปนี้ ไม่สามารถทำได้
 

$("span#i_span").click(function(){
	$("#i_debug").html($("span#i_span").html());
});

แต่ด้วยคุณสมบัติของ event live ของ jQuery 1.4 สามารถทำได้
ด้วยคำสั่งต่อไปนี้
 

$("span#i_span").live('click',function(){
	$("#i_debug").html($("span#i_span").html());
});

และสามารถยกเลิกความสามารถนี้ด้วย die event
ด้วยคำสั่งต่อไปนี้
 

$("span#i_span").die('click');

โค้ดตัวอย่าง
 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>jquery get object from ajax</title>
<style type="text/css">
#i_content{
	background-color:#FFC;
	width:200px;
	height:35px;
	display:block;	
}
#i_debug{
	background-color:#FCC;
	width:200px;
	height:35px;
	display:block;	
}
#i_span{
	background-color:#6CF;	
}
</style>
</head>

<body>


<script type="text/javascript" src="js/jquery-1.4.1.min.js"></script>
<script type="text/javascript">
$(function(){
	$("#i_content").click(function(){
	   var xhrData = "<span id='i_span'>message</span>"
	   $("#i_content").html(xhrData);
	});
	$("span#i_span").click(function(){
		$("#i_debug").html("I click the span id i_span");
	});
	$("#cancel_live").click(function(){
		$("span#i_span").die('click');
		$("#i_debug").html("");
	});
	$("#use_live").click(function(){
		$("span#i_span").live('click',function(){
			$("#i_debug").html($("span#i_span").html());
		});
	});	
});
</script>
div id=i_content
<br />
<div id="i_content"></div>
<br />
div id=i_debug
<br />
<div id="i_debug"></div>
<br />
<button id="use_live">Use live() event</button>
<button id="cancel_live">Use die() event</button>

</body>
</html>

อ่านเพิ่มเติม
http://www.ninenik.com/jquery-manual/api/live.html
http://www.ninenik.com/jquery-manual/api/die.html




บทความในหมวดที่่น่าสนใจ อื่นๆ jQuery Learning

07 Dec 09 การเลื่อน scrollbar อัตโนมัติตาม การเลื่อนขึ้นลง ของ mouse ด้วย jQuery อ่าน 1538 08 Dec 09 แปลง jQuery object เป็น DOM object อ่าน 1509 29 Nov 09 กำหนด hilight ของ cell ข้อมูลในตาราง ด้วย jQuery และ CSS อย่างง่าย อ่าน 1505 14 Mar 09 ค้นหาข้อความในหน้าเว็บเพจอย่างง่ายด้วย jQuery อ่าน 1469 28 Jun 10 การเลือก หรือ ไม่เลือก checkbox ทั้งหมด และ hilight ด้วย jQuery อย่างง่าย อ่าน 1446 27 Nov 09 แก้ปัญหาความกว้าง option ของ select tag ใน ie ด้วย jQuery และ css อย่างง่าย อ่าน 1406 27 Jan 10 การใช้งาน jQuery.contains() ใน jQuery 1.4 อ่าน 1403 27 May 10 ทบทวน ลำดับ การทำงาน mouse events ใน jQuery อ่าน 1348 05 Apr 10 กำหนด link ลิ้งค์ ทั้งหมด ให้ เปิดหน้าต่างใหม่ ด้วย jQuery อย่างง่าย อ่าน 1254 18 Mar 09 สร้างเครื่องคิดเลขอย่างง่ายด้วย CSS และ jQuery อ่าน 1251 26 Jan 10 การใช้งาน method .clearQueue() ใน jQuery 1.4 javascript library เวอร์ชั่นล่าสุด อ่าน 1219 21 Jul 10 เทคนิค การเพิ่ม ลบ แถว ในตาราง รายการข้อมูล ด้วย jQuery อย่างง่าย อ่าน 1199 09 Aug 10 ประยุกต์ jQuery UI ปฏิทิน Datepicker แสดงภาษาไทย และใช้ ปี พ.ศ. อ่าน 1103 12 Aug 10 ประยุกต์ ใช้ jQuery สร้างข้อความเลื่อน ซ้าย ขวา คล้าย marquee อ่าน 589 27 Aug 10 เทคนิค jQuery สร้าง preloading page หรือ loading image ก่อนแสดงหน้าเว็บ อ่าน 524
จำนวนผู้เยี่ยมชม 191008 คน 2010 © Copyright ninenik.com. All rights reserved.