คำถามติดแท็ก javascript

สำหรับคำถามเกี่ยวกับการเขียนโปรแกรมใน ECMAScript (JavaScript / JS) และภาษา / การใช้งานต่างๆ (ไม่รวม ActionScript) แท็กนี้ไม่ค่อยได้ใช้คนเดียว แต่ส่วนใหญ่มักจะเกี่ยวข้องกับแท็ก [node.js], [jquery], [json] และ [html]


4
เหตุการณ์ jQuery ทั้งหมดควรผูกติดกับ $ (เอกสาร) หรือไม่
สิ่งนี้มาจากไหน เมื่อฉันเรียนรู้ jQuery ครั้งแรกปกติฉันจะแนบกิจกรรมดังนี้ $('.my-widget a').click(function() { $(this).toggleClass('active'); }); หลังจากเรียนรู้เพิ่มเติมเกี่ยวกับความเร็วของตัวเลือกและการมอบหมายเหตุการณ์ฉันอ่านในหลาย ๆ ที่ที่ "การมอบหมายเหตุการณ์ jQuery จะทำให้โค้ดของคุณเร็วขึ้น" ดังนั้นฉันจึงเริ่มเขียนโค้ดแบบนี้: $('.my-widget').on('click','a',function() { $(this).toggleClass('active'); }); นี่เป็นวิธีที่แนะนำในการทำซ้ำพฤติกรรมของกิจกรรม. live () ที่เลิกใช้แล้ว ซึ่งเป็นสิ่งสำคัญสำหรับฉันเนื่องจากมีไซต์ของฉันเพิ่ม / ลบวิดเจ็ตอยู่ตลอดเวลา ข้างต้นไม่ได้ทำงานเหมือนกับ. live () เนื่องจากองค์ประกอบเท่านั้นที่ถูกเพิ่มลงในคอนเทนเนอร์ที่มีอยู่แล้ว '.my-widget' จะได้รับพฤติกรรม หากฉันเพิ่มบล็อก html แบบไดนามิกอีกครั้งหลังจากที่โค้ดนั้นรันองค์ประกอบเหล่านั้นจะไม่ทำให้เกิดเหตุการณ์ที่เกี่ยวข้อง แบบนี้: setTimeout(function() { $('body').append('<div class="my-widget"><a>Click does nothing</a></div>'); }, 1000); สิ่งที่ฉันต้องการบรรลุ: พฤติกรรมเก่าของ. live () // …

30
จะเปรียบเทียบหมายเลขรุ่นซอฟต์แวร์โดยใช้ js ได้อย่างไร (หมายเลขเท่านั้น)
นี่คือหมายเลขเวอร์ชั่นของซอฟต์แวร์: "1.0", "1.0.1", "2.0", "2.0.0.1", "2.0.1" ฉันจะเปรียบเทียบสิ่งนี้ได้อย่างไร ?? สมมติว่าคำสั่งที่ถูกต้องคือ: "1.0", "1.0.1", "2.0", "2.0.0.1", "2.0.1" ความคิดนั้นง่าย ... : อ่านตัวเลขตัวแรก, มากกว่า, ที่สอง, หลังจากนั้นตัวที่สาม .... แต่ฉันไม่สามารถแปลงหมายเลขเวอร์ชั่นเป็นเลขทศนิยมได้ .... คุณยังสามารถดูหมายเลขเวอร์ชันได้เช่นกัน นี้: "1.0.0.0", "1.0.1.0", "2.0.0.0", "2.0.0.1", "2.0.1.0" และนี่คือความชัดเจนมากขึ้นเพื่อดูความคิดที่อยู่เบื้องหลัง ... แต่วิธีการแปลงเป็นโปรแกรมคอมพิวเตอร์ ?? มีใครมีความคิดเกี่ยวกับวิธีการเรียงลำดับนี้หรือไม่? ขอบคุณ.

8
ความแตกต่างระหว่างการแช่แข็งและการปิดผนึก
ฉันเพิ่งได้ยินเกี่ยวกับวิธีการของ JavaScript freezeและsealสามารถใช้เพื่อทำให้ Object ใด ๆ ไม่เปลี่ยนรูปได้ นี่คือตัวอย่างสั้น ๆ วิธีใช้: var o1 = {}, o2 = {}; Object.freeze(o2); o1["a"] = "worked"; o2["a"] = "worked"; alert(o1["a"]); //prints "worked" alert(o2["a"]); //prints "undefined" ความแตกต่างระหว่างfreezeและsealคืออะไร? พวกเขาสามารถเพิ่มประสิทธิภาพได้หรือไม่?

5
“ คำเตือนการเลิกใช้งาน: การสร้างช่วงเวลากลับเป็น js Date” เมื่อพยายามแปลงวันที่ RFC2822 เป็นโมฆะ
ฉันใช้รหัสต่อไปนี้เพื่อแปลงวันที่เวลาฝั่งเซิร์ฟเวอร์เป็นเวลาท้องถิ่นโดยใช้ moment.js moment(moment('Wed, 23 Apr 2014 09:54:51 +0000').format('lll')).fromNow() แต่ฉันได้รับ: คำเตือนการเลิกใช้: การก่อสร้างช่วงเวลาหนึ่งกลับเป็น js Date นี่คือกำลังใจและจะถูกลบออกในรุ่นใหญ่ที่จะเกิดขึ้น โปรดดูhttps://github.com/moment/moment/issues/1407สำหรับข้อมูลเพิ่มเติม ดูเหมือนว่าฉันจะไม่สามารถกำจัดมันได้! ฉันจะแก้ไขได้อย่างไร

8
ฉันจะตั้งค่าส่วนหัวการตอบสนองในเนื้อหาของ express.js ได้อย่างไร
ฉันต้องตั้งค่า CORS ให้เปิดใช้งานสคริปต์ที่ให้บริการโดยด่วน ฉันจะตั้งค่าส่วนหัวในการตอบกลับที่ส่งคืนสำหรับสาธารณะ / เนื้อหาได้อย่างไร

10
สร้างสตริงที่มีความยาวผันแปรได้เต็มไปด้วยอักขระซ้ำ
ดังนั้นคำถามของฉันถูกถามโดยคนอื่นในรูปแบบ Java ที่นี่: Java - สร้างอินสแตนซ์สตริงใหม่ที่มีความยาวที่ระบุและเต็มไปด้วยอักขระที่เฉพาะเจาะจง ทางออกที่ดีที่สุด? . . . แต่ฉันกำลังมองหาจาวาสคริปต์ที่เทียบเท่า โดยทั่วไปฉันต้องการเติมฟิลด์ข้อความด้วยอักขระ "#" แบบไดนามิกโดยยึดตามแอตทริบิวต์ "maxlength" ของแต่ละฟิลด์ ดังนั้นหากมีการป้อนข้อมูลmaxlength="3"แล้วฟิลด์จะถูกเติมด้วย "###" จะเป็นการดีที่จะมีบางสิ่งบางอย่างเช่น Java StringUtils.repeat("#", 10);แต่จนถึงตอนนี้ตัวเลือกที่ดีที่สุดที่ฉันนึกได้คือการวนซ้ำและผนวกอักขระ "#" ครั้งละหนึ่งตัวจนกว่าจะถึงความยาวสูงสุด ฉันไม่สามารถสั่นคลอนความรู้สึกว่ามีวิธีที่มีประสิทธิภาพมากกว่าที่จะทำ ความคิดใด ๆ FYI - ฉันไม่สามารถกำหนดค่าเริ่มต้นในอินพุตได้เพียงเพราะอักขระ "#" จำเป็นต้องล้างโฟกัสและหากผู้ใช้ไม่ได้ป้อนค่าจะต้อง "เติม" เบลอ เป็นขั้นตอน "เติมเงิน" ที่ฉันกังวล
164 javascript  html  string 

11
JSON.stringify output เพื่อ div ในวิธีการพิมพ์ที่น่ารัก
ฉันJSON.stringifyเป็นวัตถุ json โดย result = JSON.stringify(message, my_json, 2) 2ในการโต้เถียงดังกล่าวข้างต้นควรจะสวยพิมพ์ผล alert(result)มันเป็นเช่นนี้ถ้าฉันทำสิ่งที่ชอบ อย่างไรก็ตามฉันต้องการแสดงผลลัพธ์นี้ให้กับผู้ใช้โดยต่อท้ายไว้ใน div เมื่อฉันทำสิ่งนี้ฉันจะได้รับเพียงบรรทัดเดียวปรากฏ (ฉันไม่คิดว่ามันจะทำงานได้เพราะตัวแบ่งและช่องว่างไม่ถูกตีความเป็น html หรือไม่) { "data": { "x": "1", "y": "1", "url": "http://url.com" }, "event": "start", "show": 1, "id": 50 } มีวิธีการส่งออกผลลัพธ์ของJSON.stringifyการ div ในวิธีพิมพ์สวยหรือไม่

9
การลบฟังเหตุการณ์ที่ถูกเพิ่มเข้ามาด้วยการผูก
ใน JavaScript วิธีที่ดีที่สุดในการลบฟังก์ชั่นที่เพิ่มเข้ามาเป็นฟังเหตุการณ์โดยใช้ bind () คืออะไร? ตัวอย่าง (function(){ // constructor MyClass = function() { this.myButton = document.getElementById("myButtonID"); this.myButton.addEventListener("click", this.clickListener.bind(this)); }; MyClass.prototype.clickListener = function(event) { console.log(this); // must be MyClass }; // public method MyClass.prototype.disableButton = function() { this.myButton.removeEventListener("click", ___________); }; })(); วิธีเดียวที่ฉันคิดได้คือการติดตามผู้ฟังทุกคนที่เพิ่มเข้ามาด้วยการผูก ตัวอย่างข้างต้นด้วยวิธีนี้: (function(){ // constructor MyClass = function() { …

12
node.js: อ่านไฟล์ข้อความในอาร์เรย์ (แต่ละบรรทัดรายการในอาร์เรย์)
ฉันต้องการอ่านไฟล์ขนาดใหญ่มาก ๆ เข้าไปในอาร์เรย์ JavaScript ใน node.js ดังนั้นหากไฟล์เป็นเช่นนี้: first line two three ... ... ฉันจะมีอาร์เรย์: ['first line','two','three', ... , ... ] ฟังก์ชั่นจะเป็นดังนี้: var array = load(filename); ดังนั้นความคิดของการโหลดมันทั้งหมดเป็นสตริงแล้วแยกมันไม่เป็นที่ยอมรับ

14
ฉันจะจัดโครงสร้างฟังก์ชั่นคลาวด์สำหรับ Firebase เพื่อปรับใช้หลายฟังก์ชั่นจากหลายไฟล์ได้อย่างไร
ฉันต้องการสร้างฟังก์ชั่นคลาวด์หลายอย่างสำหรับ Firebase และปรับใช้ทั้งหมดในเวลาเดียวกันจากโครงการเดียว ฉันต้องการแยกแต่ละฟังก์ชั่นเป็นไฟล์แยกต่างหาก ขณะนี้ฉันสามารถสร้างฟังก์ชั่นได้หลายอย่างถ้าฉันวางทั้งสองไว้ใน index.js เช่น: exports.foo = functions.database.ref('/foo').onWrite(event => { ... }); exports.bar = functions.database.ref('/bar').onWrite(event => { ... }); อย่างไรก็ตามฉันต้องการวาง foo และ bar ไว้ในไฟล์แยกกัน ฉันลองสิ่งนี้: /functions |--index.js (blank) |--foo.js |--bar.js |--package.json โดยที่ foo.js อยู่ exports.foo = functions.database.ref('/foo').onWrite(event => { ... }); และ bar.js คือ exports.bar = functions.database.ref('/bar').onWrite(event => …

13
มีวิธีการเพิ่ม / ลบหลายคลาสในหนึ่งคำสั่งเดียวกับ classList หรือไม่?
จนถึงตอนนี้ฉันต้องทำสิ่งนี้: elem.classList.add("first"); elem.classList.add("second"); elem.classList.add("third"); ขณะนี้สามารถทำได้ใน jQuery เช่นนี้ $(elem).addClass("first second third"); ฉันต้องการทราบว่ามีวิธีดั้งเดิมในการเพิ่มหรือลบ
164 javascript  html 

9
วิธีการเรียกฟังก์ชั่นเกี่ยวกับองค์ประกอบของเด็กในเหตุการณ์ผู้ปกครอง
บริบท ใน Vue 2.0 เอกสารและอื่น ๆระบุอย่างชัดเจนว่าการสื่อสารจากพ่อแม่ถึงเด็กเกิดขึ้นผ่านอุปกรณ์ประกอบฉาก คำถาม ผู้ปกครองบอกให้เด็กรู้เหตุการณ์ที่เกิดขึ้นผ่านอุปกรณ์ประกอบฉากได้อย่างไร ฉันควรจะดูเหตุการณ์ที่เรียกว่าเสา? ไม่รู้สึกว่าถูกต้องและไม่ทำทางเลือก ( $emit/ $onสำหรับเด็กสู่ผู้ปกครองและเป็นโมเดลฮับสำหรับองค์ประกอบที่อยู่ห่างไกล) ตัวอย่าง ฉันมีคอนเทนเนอร์หลักและจำเป็นต้องแจ้งคอนเทนเนอร์ย่อยของเด็กว่าการมีส่วนร่วมในการดำเนินการบางอย่างกับ API นั้นทำได้ดี ฉันต้องการที่จะสามารถเรียกใช้ฟังก์ชั่น

22
วิธีการแปลงชื่อเรื่องเป็นทาก URL ใน jQuery?
ฉันกำลังทำงานกับแอปใน CodeIgniter และฉันกำลังพยายามสร้างฟิลด์บนฟอร์มที่สร้าง URL แบบไดนามิก สิ่งที่ฉันต้องการจะทำคือลบเครื่องหมายวรรคตอนแปลงเป็นตัวพิมพ์เล็กและแทนที่ช่องว่างด้วยเครื่องหมายขีดคั่น ตัวอย่างเช่น Rib Shack ของ Shane จะกลายเป็น shane-rib-shack นี่คือสิ่งที่ฉันมี ส่วนตัวพิมพ์เล็กนั้นเป็นเรื่องง่าย แต่การเปลี่ยนไม่ได้ผลเลยและฉันก็ไม่ทราบว่าจะเอาเครื่องหมายวรรคตอนออก: $("#Restaurant_Name").keyup(function(){ var Text = $(this).val(); Text = Text.toLowerCase(); Text = Text.replace('/\s/g','-'); $("#Restaurant_Slug").val(Text); });
163 javascript  jquery  regex 

9
Javascript - วิธีตรวจสอบว่าเอกสารถูกโหลดหรือไม่ (IE 7 / Firefox 3)
ฉันต้องการเรียกใช้ฟังก์ชันหลังจากโหลดเอกสารแล้ว แต่เอกสารนั้นอาจโหลดเสร็จหรือยังไม่เสร็จ ถ้าโหลดแล้วฉันก็สามารถเรียกใช้ฟังก์ชันได้ หากไม่โหลดขึ้นมาฉันสามารถแนบผู้ฟังเหตุการณ์ได้ ฉันไม่สามารถเพิ่ม eventlistener หลังจาก onload ถูกไล่ออกไปแล้วเพราะมันจะไม่ถูกเรียก ดังนั้นฉันจะตรวจสอบว่าเอกสารถูกโหลดได้อย่างไร ฉันลองใช้รหัสด้านล่าง แต่มันไม่ทำงานทั้งหมด ความคิดใด ๆ var body = document.getElementsByTagName('BODY')[0]; // CONDITION DOES NOT WORK if (body && body.readyState == 'loaded') { DoStuffFunction(); } else { // CODE BELOW WORKS if (window.addEventListener) { window.addEventListener('load', DoStuffFunction, false); } else { window.attachEvent('onload', DoStuffFunction); } …

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.