<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>jQueryTips by Tee++; &#187; Effect</title>
	<atom:link href="http://www.jquerytips.com/tag/effect/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.jquerytips.com</link>
	<description>Coding is fun.</description>
	<lastBuildDate>Sun, 25 Apr 2010 11:30:33 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>มาทำ Horizontal Menu แบบ show/hide กันเถอะ</title>
		<link>http://www.jquerytips.com/2007/12/19/jquery-horizontal-menu/</link>
		<comments>http://www.jquerytips.com/2007/12/19/jquery-horizontal-menu/#comments</comments>
		<pubDate>Tue, 18 Dec 2007 18:26:49 +0000</pubDate>
		<dc:creator>Tee++;</dc:creator>
				<category><![CDATA[jQuery]]></category>
		<category><![CDATA[Basic]]></category>
		<category><![CDATA[Effect]]></category>

		<guid isPermaLink="false">http://www.jquerytips.com/2007/12/19/%e0%b8%a1%e0%b8%b2%e0%b8%97%e0%b8%b3-horizontal-menu-%e0%b9%81%e0%b8%9a%e0%b8%9a-showhide-%e0%b8%81%e0%b8%b1%e0%b8%99%e0%b9%80%e0%b8%96%e0%b8%ad%e0%b8%b0/</guid>
		<description><![CDATA[บทความของวันนี้ผมจะมาแนะนำการทำเมนู แบบ horizontal ที่มี sub ย่อย 1 ระดับกัน ที่ผมเขียนบทความนี้ก้เพราะผมไปเห็นเพื่อนบางคน เขียน javascript ยุบยับ เดี๋ยวจับ onclick ตัวนี้ ซ่อนตัวโน้น เขียนกันให้ยาวเฟื้อย มาลองวิธีแบบ jQuery ดีกว่า รับประกันความง่าย ^_^
Example:
http://www.jquerytips.com/example/menuDL.html
Code:





$(function() {
	$("#menu > dl > dd").hide();
	$("#menu > dl > dt").click(function() {
		$(this).parent().parent().find('dd:visible').slideUp();
		$(this).parent().find('dd').css('cursor', 'pointer').slideDown();
	});
	$(document).click(function() {
		$("#menu > dl > dd").filter(':visible').hide();
	});
});


body {
	font-family: verdana;
	font-size: 12px;
}
#menu dl {
	float: left;
	width: 150px;
	text-align: center;
	border-top: solid 1px #000;
	border-bottom: solid 1px #000;
}
#menu dl dt {
	font-weight: [...]]]></description>
			<content:encoded><![CDATA[<p>บทความของวันนี้ผมจะมาแนะนำการทำเมนู แบบ horizontal ที่มี sub ย่อย 1 ระดับกัน ที่ผมเขียนบทความนี้ก้เพราะผมไปเห็นเพื่อนบางคน เขียน javascript ยุบยับ เดี๋ยวจับ onclick ตัวนี้ ซ่อนตัวโน้น เขียนกันให้ยาวเฟื้อย มาลองวิธีแบบ jQuery ดีกว่า รับประกันความง่าย ^_^<span id="more-14"></span></p>
<p><strong>Example:</strong><br />
<a href="http://www.jquerytips.com/example/menuDL.html">http://www.jquerytips.com/example/menuDL.html</a></p>
<p><strong>Code:</strong><br />
<code><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><br />
<html><br />
<head></p>
<p><script type="text/javascript" src="../javas/jquery.js"></script><br />
<script type="text/javascript">
$(function() {
	$("#menu > dl > dd").hide();
	$("#menu > dl > dt").click(function() {
		$(this).parent().parent().find('dd:visible').slideUp();
		$(this).parent().find('dd').css('cursor', 'pointer').slideDown();
	});</p>
<p>	$(document).click(function() {
		$("#menu > dl > dd").filter(':visible').hide();
	});</p>
<p>});
</script></p>
<style type="text/css">
body {
	font-family: verdana;
	font-size: 12px;
}</p>
<p>#menu dl {
	float: left;
	width: 150px;
	text-align: center;
	border-top: solid 1px #000;
	border-bottom: solid 1px #000;
}</p>
<p>#menu dl dt {
	font-weight: bold;
}</p>
<p>#menu dl dd {
	margin: 0; padding: 0;
	border-top: solid 1px #000;
	border-left: solid 1px #000;
	border-right: solid 1px #000;
}
</style>
<p></head><br />
<body></p>
<div id="menu">
<dl onclick="event.cancelBubble=true">
<dt>Menu</dt>
<dd>Sub 1</dd>
<dd>Sub 1</dd>
</dl>
<dl onclick="event.cancelBubble=true">
<dt>Menu</dt>
<dd>Sub 1</dd>
<dd>Sub 1</dd>
</dl>
<dl onclick="event.cancelBubble=true">
<dt>Menu</dt>
<dd>Sub 1</dd>
<dd>Sub 1</dd>
</dl>
<dl onclick="event.cancelBubble=true">
<dt>Menu</dt>
<dd>Sub 1</dd>
<dd>Sub 1</dd>
</dl>
</div>
<p></body><br />
</html></code></p>
<p>ขออธิบายโคดแค่ในส่วน jQuery นะครับ<br />
<code>$(function() {<br />
	$("#menu > dl > dd").hide();<br />
	$("#menu > dl > dt").click(function() {<br />
		$(this).parent().parent().find('dd:visible').slideUp();<br />
		$(this).parent().find('dd').css('cursor', 'pointer').slideDown();<br />
	});</p>
<p>	$(document).click(function() {<br />
		$("#menu > dl > dd").filter(':visible').hide();<br />
	});</p>
<p>});<br />
</code></p>
<p>1. แรกสุดให้ซ่อน dd ทุกตัว ที่อยู่ใน parents #menu<br />
2. ต่อมาเป็นการจับ events เมื่อมีการคลิกที่ tag dd ที่อยู่ใน parent ของ dl และ #menu ตามลำดับ<br />
3. ให้ซ่อน dd ทั้งหมดที่มีการแสดงผลอยู่ในขณะนี้<br />
4. ให้แสดงผล dd ของตัวที่ถูกคลิกอยู่ในปัจจุบัน รวมทั้ง add css ให้มันอีกนิดหน่อย เพิ่มความสวยงาม</p>
<p><code>$(document).click(function() {<br />
  $("#menu > dl > dd").filter(':visible').hide();<br />
});</code><br />
ส่วนโคดด้านบนเป็นการบอกว่าเวลาคลิกที่จุดในไหนหน้าเอกสารให้ซ่อน dd ทั้งหมด</p>
<p><strong>สังเกตุ</strong><br />
จะเห็นได้ว่าในเอกสาร HTML มีโคด นี้อยู่ด้วย<br />
<code>
<dl onclick="event.cancelBubble=true"></code></p>
<p>ประโยชน์ของมันก็คือเมื่อเวลามีการทำงานกับ event onclick มันจะไม่เหมารวตัวนี้เข้าไปด้วย ในที่นี้มันมีประโยชน์คือ เมื่อเราคลิกหน้าเอกสารไม่ว่าตรงไหน menu dd จะถูกปิดลง ยกเว้นเมื่อคลิกที่ dt หรือ dd เพราะเราใส่ cancelBubble ไว้ที่ paremt ของพวกมัน นั่นก็คือ dl ไว้แล้วนั่นเอง </p>
]]></content:encoded>
			<wfw:commentRss>http://www.jquerytips.com/2007/12/19/jquery-horizontal-menu/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
