|
|
|
สอบถามการใช้ JavaScript ในการแทนที่ข้อความ menu หน่อยครับ |
|
|
|
|
|
|
|
Code (JavaScript)
<div class="left>
<a href="javascript:tab('sub_main');" >ปุ่ม 1</a>
<a href="javascript:tab('sub_main');" >ปุ่ม 2</a>
<a href="javascript:tab('sub_content_sub');" >ปุ่ม 3</a>
<a href="javascript:tab('sub_content_sub2');" >ปุ่ม 4</a>
</div>
<script language='javascript'>
var default_show=sub_main'';
function tab(sub_show){
$('#'+sub_show ).show();
$('#'+default_show).hide();
default_show = sub_show;
}
</script>
|
|
|
|
|
Date :
2014-09-13 06:08:59 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ทำไม ผมใช้งานไม่ได้อะครับ T_T แก้ไขเป็น
Code (JavaScript)
ตอนเรียกค่าผมก็ใช้
<a href="javascript:tab('sub_main');" >ปุ่ม 1</a>
<a href="javascript:tab('sub_main');" >ปุ่ม 2</a>
<a href="javascript:tab('sub_content_sub');" >ปุ่ม 3</a>
<a href="javascript:tab('sub_content_sub2');" >ปุ่ม 4</a>
var default_show='sub_main';
function tab(sub_show){
$('#'+sub_show ).show();
$('#'+default_show).hide();
default_show = sub_show;
}
|
|
|
|
|
Date :
2014-09-13 08:07:06 |
By :
topman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<script src="/js/jquery-1.10.2.js"></script> บันทัดนี้ได้มีใน code หรือเปล่าครับ
ปล. อาจเป็นเวอร์ชั่นอื่นก็ได้
ปล. 2 <spen> ไม่เคยเห็นนะครับ เห็นแต่ <span>
Code (JavaScript)
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>Untitled Document</title>
<script src="/js/jquery-1.10.2.js"></script>
</head>
<body>
<div class="right">
<span id="sub_main" style="display:block">ข้อความที่ 1</span>
<span id="sub_content_sub" style="display:none">ข้อความที่ 2</span>
<span id="sub_content_sub2" style="display:none">ข้อความที่ 3</span>
</div>
<div class="left">
<a href="javascript: tab('sub_main');" >ปุ่ม 1</a><br>
<a href="javascript: tab('sub_main');" >ปุ่ม 2</a><br>
<a href="javascript: tab('sub_content_sub');" >ปุ่ม 3</a><br>
<a href="javascript: tab('sub_content_sub2');" >ปุ่ม 4</a>
</div>
<script language='javascript'>
var default_show='sub_main';
function tab(sub_show){
if(sub_show !=default_show){
$('#'+sub_show ).show();
$('#'+default_show).hide();
default_show = sub_show;
}
}
</script>
</body>
</html>
|
|
|
|
|
Date :
2014-09-13 11:08:21 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมก็ใส่พวก script jquery แล้วนะครับ
ผมพิมพ์ผิดเฉยๆครับ อันนี้ผมไม่ได้ก๊อปจากหน้า Code มา ผมมาพิมพ์เอง ^_^
เกี่ยวกับตรง
javascript: tab('sub_main');
หรือป่าวครับ ผมใช้แค่ javascript: tab(sub_main); มันจะเกี่ยวหรือป่าวอะครับ
พอดีผมทำเป็น widget อะครับ ส่งค่าจาก
$html = '
<a href="javascript: tab(sub_main);" >ปุ่ม 1</a><br>
<a href="javascript: tab(sub_main);" >ปุ่ม 2</a><br>
<a href="javascript: tab(sub_content_sub);" >ปุ่ม 3</a><br>
<a href="javascript: tab(sub_content_sub2);" >ปุ่ม 4</a>'
;
ประมาณนี้อะครับ
ผมไม่แน่ใจว่ามันจะเกี่ยวหรือป่าวอะครับ
|
|
|
|
|
Date :
2014-09-13 13:29:36 |
By :
topman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ผมลอง alert(sub_show);
มันขึ้นข้อความนี้อะครับ "Object HTMLDivElement"
กำลังหาวิธีอยู๋อะครับ
|
|
|
|
|
Date :
2014-09-13 13:54:07 |
By :
topman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ล่ะครับ ผมกำหนด
var sub_content_sub = 'sub_content_sub';
var sub_content_sub2 = 'sub_content_sub2';
var sub_main = 'sub_main';
ให้มันเพิ่มขึ้นไปอะครับ
แต่มันติดปัญหาที่เวลาคลิกที่ sub_main ที่เหมือนกัน มันจะหายไปอะครับ
ผมจะต้องเขียนเงื่อนไขเช็คยังไงดีหรอครับ
|
|
|
|
|
Date :
2014-09-13 13:57:49 |
By :
topman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ตอนเรียกใช้ ก็แค่ใส่ single quote ครอบ ถ้าไม่ใส่ จาวาก็มองเห็นเป็นตัวแปร ไม่ได้มองเห็นเป็น constant
อ่านโค๊ดที่ผมเขียนให้อีกทีครับ ผมลองทำงานแล้ว และป้องกัน ออปเจคซ้ำไว้แล้ว
สำหรับโค๊ดนี้ ไม่มี singlequote ครอบ
$html = '
<a href="javascript: tab(sub_main);" >ปุ่ม 1</a><br>
<a href="javascript: tab(sub_main);" >ปุ่ม 2</a><br>
<a href="javascript: tab(sub_content_sub);" >ปุ่ม 3</a><br>
<a href="javascript: tab(sub_content_sub2);" >ปุ่ม 4</a>';
แก้เป็น
$html = '
<a href="javascript: tab(\'sub_main\');" >ปุ่ม 1</a><br>
<a href="javascript: tab(\'sub_main\');" >ปุ่ม 2</a><br>
<a href="javascript: tab(\'sub_content_sub\');" >ปุ่ม 3</a><br>
<a href="javascript: tab(\'sub_content_sub\');" >ปุ่ม 4</a>';
|
ประวัติการแก้ไข 2014-09-13 15:16:09
|
|
|
|
Date :
2014-09-13 15:10:10 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อ๋อ ได้ล่ะครับ ผม ลืมใส่ if ให้มัน ^_^ ขอบคุณมากๆเลยนะครับ สำหรับการช่วยเหลือ ^_^
ผมขอถามอีกข้อนะครับผมมี div nav_top ที่แบบว่าเวลา scroll ก็จะเปิดอีก div ที่เป็น nav_top ขึ้นมา เพราะเมนู ส่วนบนเว็บ จะมีขนาดใหญ่ แต่เวลา scroll ลงมา ผมจะให้ menu ย่อ ที่เป็น nav_top สุดของมันลงมา เพราะมันจะอันเล็กและให้มัน fix อยู่ด้านบนตลอดอะครับ
แต่ค่า id มันซ้ำกัน พอจะมีวิธีแก้ไข ไหมอะครับ เพราะผมรับค่า $html=data มาจากข้อมูลเดียวกันอะครับ
ผมสามารถเปลี่ยน menu หลัก ผมใช้ id="sub_main" และส่วนของ nav_top ผมสามารถใช้แบบไหนได้บ้างครับ name ได้ไหมครับ ถ้าเปลี่ยนได้ Code ผมต้องแก้ไข ยังไงได้บ้างอะครับ
ขอบคุณมากๆนะครับ สำหรับคำตอบ พอดี ระบบมันค่อนข้างยุ่งยากอะครับ T_T ขอโทษที่รบกวนเยอะนะครับผม
|
ประวัติการแก้ไข 2014-09-14 09:16:06
|
|
|
|
Date :
2014-09-14 08:23:44 |
By :
topman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
id ไม่ควรซ้ำกันครับ เพราะเวลาทำงาน มันจะอ้าง id แรกเสมอ
ก็สามารถใช้ คลาสแทน ได้ครับ หรือเราจะกำหนด attibute ขึ้นมาเอง เพื่อใช้งานด้วยก็ได้ครับ
Code (JavaScript)
<div id="div_1" class='nav_top' myattr='test1' ></div>
<div id="div_2" class='nav_top' myattr='test2' ></div>
<script language="javascript">
$('.nav_top').on('mouseover', '', '', function(e){
var id=$(this).attr('id');
switch(id){
case 'div_1': do_for_1(); break;
case 'div_2': do_for_2(); break;
}
});
//หรือจะอ้างจาก myattr ด้วยก็ได้
$('.nav_top [myattr=test1]').on('mouseover', '', '', function(e){
alert($(this).attr('myattr'));
});
</script>
|
|
|
|
|
Date :
2014-09-14 10:08:57 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้ล่ะครับผม ใช้วิธีง่ายๆ คือกำหนด เป็น class แทน ^_^
Code (JavaScript)
function tab(sub_show){
if(sub_show !=default_show){
$('#'+sub_show ).show();
$('.'+sub_show ).show();
$('#'+default_show).hide();
$('.'+default_show).hide();
default_show = sub_show;
}
}
แต่ไม่รู้ว่ามันจะ ดีหรือป่าว แต่มันก็ใช้งานได้ครับ
ขอบคุณมากๆเลยนะครับผม
|
|
|
|
|
Date :
2014-09-14 12:32:09 |
By :
topman |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 03
|