BLOG BOARD_B
ติดต่อรายละเอียดเพิ่มเติมได้ที่ Email: sale@soccersuck.com
ไว้คราวหน้า X
ไว้คราวหน้า X
ไม่ต้องแสดงข้อความนี้อีกเลย
ไปหน้าที่ 1
ไปที่หน้า
GO
ตั้งกระทู้ใหม่
ฝากรูป
ผู้ตั้ง
ข้อความ
ออนไลน์
ซุปตาร์ยูโร
Status: ง่วงนอนทั้งวัน
: 0 ใบ : 0 ใบ
เข้าร่วม: 12 Jul 2008
ตอบ: 10632
ที่อยู่: Highbury / Emirates
โพสเมื่อ: Thu Jun 09, 2022 15:01
ขอถามเซียน Javascript นิดนึงครับ จะเขียนยังไง


คือผมอยากเขียนให้เวลาเรากดที่ป้าย T1 ก็จะมีรายการ Item 1 ขึ้นมา กด T2 ก็มี Item 2 ขึ้นมาแทนที่ แต่ปัญหาคือ ผมเพิ่ม/ลบ Class Active เป็นแค่ Element เดียวกันครับ (Class ชื่อเดียวกัน) พอแยกกัน มันต้องตรวจว่ามี Active อยู่ไหม ถ้ามีให้ลบออกก่อน ผมก็ไปต่อไม่เป็นแล้ว (เช่นแยกเป็น Box 1-4) ตอนนี้คือทำได้แค่ไม่ว่ากดป้ายไหนมันก็ขึ้นแค่ Item 1 มีใครแนะนำได้บ้าง

แก้ไขล่าสุดโดย Backspace เมื่อ Thu Jun 09, 2022 15:19, ทั้งหมด 4 ครั้ง
0
0
หากโดน 40 เรื้อน จะถูกแบน
โหวตเป็นกระทู้แนะนำ
ออฟไลน์
นักบอลถ้วย ค.
Status:
: 0 ใบ : 0 ใบ
เข้าร่วม: 28 Feb 2022
ตอบ: 1286
ที่อยู่:
โพสเมื่อ: Thu Jun 09, 2022 15:13
[RE: ขอถามเซียน Javascript นิดนึงครับ จะเขียนยังไง]
อ่านแล้วไม่เข้าใจว่าต้องการทำอะไร
อธิบายไม่ค่อยชัด

edit:
ถ้าเข้าใจถูกคือจะลูป ul item-1, item-2, etc เพื่อที่จะได้ add/remove active class

ลองแบบนี้ก็ได้ document.querySelectorAll('#item-container > ul')
แก้ไขล่าสุดโดย toei1 เมื่อ Thu Jun 09, 2022 15:29, ทั้งหมด 1 ครั้ง
0
0
หากโดน 40 เรื้อน จะถูกแบน
ออฟไลน์
ซุปตาร์โอลิมปิก
Status: No.23
: 0 ใบ : 0 ใบ
เข้าร่วม: 03 Apr 2008
ตอบ: 15759
ที่อยู่:
โพสเมื่อ: Thu Jun 09, 2022 15:15
[RE: ขอถามเซียน Javascript นิดนึงครับ จะเขียนยังไง]
ลองถามในกลุ่มพวกโปรแกรมเมอร์ดูครับ เมื่อวานผมก็โพสถามไปก็มีคนมาช่วยเหลือเยอะอยู่
https://www.facebook.com/groups/134855003271201
https://www.facebook.com/groups/ThaiPGAssociateSociety/
0
0
หากโดน 40 เรื้อน จะถูกแบน
ออฟไลน์
กำเนิดดาวรุ่ง
Status:
: 0 ใบ : 0 ใบ
เข้าร่วม: 04 Sep 2020
ตอบ: 158
ที่อยู่:
โพสเมื่อ: Thu Jun 09, 2022 15:17
[RE: ขอถามเซียน Javascript นิดนึงครับ จะเขียนยังไง]
ก็ลบ active ทุกตัวก่อนครับ ไม่ต้องสนว่ามันมี active อยู่ไหม เพราะผลลัพธ์คือเราต้องการ active ตัวเดียว อยู่แล้ว

แล้วค่อยเพิ่ม active ตัวที่กด แค่นั้นเลย

Click -> removeAllActives -> add active class to that element

0
0
หากโดน 40 เรื้อน จะถูกแบน
ออฟไลน์
กำเนิดดาวรุ่ง
Status:
: 0 ใบ : 0 ใบ
เข้าร่วม: 23 Aug 2009
ตอบ: 266
ที่อยู่: Emirates Stadium
โพสเมื่อ: Thu Jun 09, 2022 15:19
[RE: ขอถามเซียน Javascript นิดนึงครับ จะเขียนยังไง]
อ่านแล้วงงๆเหมือนกันครับ แต่คิดว่า removeall ก่อนน่าจะได้นะ
0
0
หากโดน 40 เรื้อน จะถูกแบน
Bae Suzy - Park Shin Hye - Karina Aespa - Kwon Nara - IU - Han So Hee - Eunchae LE SSERAFIM - Mina Twice - Minah Girl's day - Pimtha - Kim Go Eun - Momo Twice - Ink Waruntorn - Sana Twice - Jennie BP - Rose BP - Minji NewJeans - Oh Yeju - Yujin IVE - Kazuha LE SERAFIM - Kim Ji Won



ออนไลน์
ดาวเตะลา ลีกา
Status:
: 0 ใบ : 0 ใบ
เข้าร่วม: 28 May 2007
ตอบ: 3551
ที่อยู่:
โพสเมื่อ: Thu Jun 09, 2022 15:21
[RE: ขอถามเซียน Javascript นิดนึงครับ จะเขียนยังไง]
ถ้าไม่ได้จะเอาตัวที่ active ไปใช้งาน ก็ลบออกทุกตัวไปเลย ไม่ต้องไปเช็คว่า active แล้วถึงเอาออก แล้วค่อยเซ็ต active ใหม่แค่ตัวที่คลิ๊ก
0
0
หากโดน 40 เรื้อน จะถูกแบน
ออฟไลน์
ผู้จัดการทีมชาติ
Status: c h i c h o o ♥
: 0 ใบ : 0 ใบ
เข้าร่วม: 20 Apr 2009
ตอบ: 28601
ที่อยู่: KIM JISOO
โพสเมื่อ: Thu Jun 09, 2022 15:28
[RE: ขอถามเซียน Javascript นิดนึงครับ จะเขียนยังไง]
const boxes = document.querySelectorAll('.box');
boxes.forEach(box => {
box.addEventListener('click', (e) => {
// บรรทัดนี้เรียกลบ class active ออกให้หมดก่อน เพราะเราจะใส่ class อีกครั้งอยู่ดี
removeAll();
// บรรทัดนี้ใส่ class active ตรง element ปัจจุบัน
e.srcElement.classList.add('active');
})
})

const removeAll = () => {
boxes.forEach(box => {
box.classList.remove('active');
});
}


แค่นี้ก็พอมั้งครับ
0
0
หากโดน 40 เรื้อน จะถูกแบน
ออฟไลน์
นักเตะอบต.
Status:
: 0 ใบ : 0 ใบ
เข้าร่วม: 16 Feb 2009
ตอบ: 1216
ที่อยู่:
โพสเมื่อ: Thu Jun 09, 2022 15:30
[RE: ขอถามเซียน Javascript นิดนึงครับ จะเขียนยังไง]
Backspace พิมพ์ว่า:


คือผมอยากเขียนให้เวลาเรากดที่ป้าย T1 ก็จะมีรายการ Item 1 ขึ้นมา กด T2 ก็มี Item 2 ขึ้นมาแทนที่ แต่ปัญหาคือ ผมเพิ่ม/ลบ Class Active เป็นแค่ Element เดียวกันครับ (Class ชื่อเดียวกัน) พอแยกกัน มันต้องตรวจว่ามี Active อยู่ไหม ถ้ามีให้ลบออกก่อน ผมก็ไปต่อไม่เป็นแล้ว (เช่นแยกเป็น Box 1-4) ตอนนี้คือทำได้แค่ไม่ว่ากดป้ายไหนมันก็ขึ้นแค่ Item 1 มีใครแนะนำได้บ้าง

 


ใช้ Collaps ของ bs5 ก็ได้ครับ
0
0
หากโดน 40 เรื้อน จะถูกแบน
***ไม่มีลายเซ็น จ่ายสดครับ***
ออฟไลน์
นักเตะเทศบาล
Status:
: 0 ใบ : 0 ใบ
เข้าร่วม: 18 Oct 2006
ตอบ: 310
ที่อยู่:
โพสเมื่อ: Thu Jun 09, 2022 15:33
[RE: ขอถามเซียน Javascript นิดนึงครับ จะเขียนยังไง]
let boxes = document.querySelectorAll(".box");

for(const box of boxes){
box.addEventListener("click", (e) => {
e.preventDefault();
const item = box.getAttribute("data-item");
document.querySelector(".item-1").classList.remove('active');
document.querySelector(".item-2").classList.remove('active');
document.querySelector(".item-3").classList.remove('active');
document.querySelector(".item-4").classList.remove('active');
document.querySelector(".item-"+item).classList.add('active');

document.querySelector(".box.active").classList.remove('active');
box.classList.add('active');
});
}

น่าจะประมาณนี้มั้งครับ
0
0
หากโดน 40 เรื้อน จะถูกแบน
ไปหน้าที่ 1
ไปที่หน้า
GO
ตั้งกระทู้ใหม่
กรุณาระบุเหตุผลที่จะแจ้งความ
ผู้ต้องหา:
ข้อความ:
Submit
Cancel
กรุณาเลือก Forum และ ประเภทกระทู้
Forum:

ประเภท:
Submit
Cancel