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

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

7
event.returnValue เลิกใช้แล้ว โปรดใช้ event มาตรฐาน preventDefault () แทน
ฉันมีสคริปต์นี้: <script> $(document).ready(function () { $("#changeResumeStatus").click(function () { $.get("{% url 'main:changeResumeStatus' %}", function (data) { if (data['message'] == 'hidden') { $("#resumeStatus").text("скрыто"); } else { $("#resumeStatus").text("опубликовано"); } }, "json"); }); }); </script> ฉันได้รับข้อผิดพลาดต่อไปนี้ในคอนโซล Google Chrome ของฉัน: event.returnValue เลิกใช้แล้ว โปรดใช้ event มาตรฐาน preventDefault () แทน ฉันกำลังใช้ jQuery v1.10.2 และเป็น#changeResumeStatus<span> เกิดอะไรขึ้นกับสคริปต์ของฉัน
222 javascript  jquery  ajax 

4
การเลือกหลายคลาสด้วย jQuery
ฉันดูดีและไม่สามารถหาวิธีเลือกองค์ประกอบทั้งหมดที่ตรงกับคลาสที่ต้องการในคำสั่งตัวเลือก jQuery เดียวเช่นนี้ $('.myClass', '.myOtherClass').removeClass('theclass'); ความคิดใด ๆ เกี่ยวกับวิธีการบรรลุสิ่งนี้? ตัวเลือกอื่น ๆ เท่านั้นที่จะทำ $('.myClass').removeClass('theclass'); $('.myOtherClass').removeClass('theclass'); แต่ฉันทำอย่างนี้กับคลาสไม่กี่ครั้งดังนั้นจึงต้องใช้รหัสมาก

20
ข้ามเบราว์เซอร์ JavaScript (ไม่ใช่ jQuery ... ) เลื่อนไปที่ภาพเคลื่อนไหวด้านบน
ฉันกำลังมองหาแอนิเมชัน "เลื่อนไปด้านบน" ข้ามเบราว์เซอร์ที่เรียบง่ายฉันสามารถใช้กับลิงค์ได้ ฉันไม่ต้องการห้องสมุด JS เช่น jQuery / Moo ฯลฯ // jQuery Equivilant to convert to pure JS... $('html, body').animate({scrollTop:0}, 400); ฉันเป็นกรณีที่สมบูรณ์แบบสำหรับคนที่ควรเรียนรู้ JS 100% ก่อนที่จะกระโดดเข้าห้องสมุด :(
222 javascript 

16
การเพิ่มองค์ประกอบให้กับวัตถุ
ฉันต้องการที่จะเติมไฟล์ json ตอนนี้ฉันมีสิ่งนี้: {"element":{"id":10,"quantity":1}} และฉันต้องการเพิ่ม "องค์ประกอบ" อีกอัน ขั้นตอนแรกของฉันคือการวาง json นั้นในประเภทวัตถุโดยใช้cart = JSON.parseตอนนี้ฉันต้องเพิ่มองค์ประกอบใหม่ ฉันคิดว่าฉันต้องใช้cart.pushเพื่อเพิ่มองค์ประกอบอื่นฉันลองนี้: var element = {}; element.push({ id: id, quantity: quantity }); cart.push(element); แต่ฉันได้รับข้อผิดพลาด "Object ไม่มีวิธีผลัก" เมื่อฉันพยายามทำelement.pushและฉันคิดว่าฉันกำลังทำอะไรผิดไปมากเพราะฉันไม่ได้บอก "องค์ประกอบ" ทุกที่ ฉันจะทำสิ่งนั้นได้อย่างไร แก้ไข:ขอโทษทุกคนฉันมีความสับสนมากในหัวของฉัน ฉันคิดว่าฉันจะได้รับเฉพาะออบเจ็กต์ประเภทเมื่อรับข้อมูลJSON.parseแต่ฉันได้สิ่งที่ฉันใส่ใน JSON ตั้งแต่แรก การวางอาร์เรย์แทนวัตถุแก้ปัญหาของฉันฉันใช้คำแนะนำมากมายมาที่นี่ด้วยขอบคุณทุกคน!
222 javascript  object 

8
เรียกใช้ฟังก์ชัน Javascript แบบอะซิงโครนัสแบบซิงโครนัส
ครั้งแรกนี่เป็นกรณีที่เฉพาะเจาะจงมากในการทำผิดวิธีในการติดตั้งการโทรแบบอะซิงโครนัสใหม่ให้เป็นโค๊ดฐานซิงโครนัสมากซึ่งมีหลายพันบรรทัดในเวลาและเวลาไม่สามารถทำการเปลี่ยนแปลงได้ ถูกต้องแล้ว " มันทำให้ทุกชีวิตของฉันเจ็บปวด แต่ความจริงและอุดมคติมักไม่เข้าข่าย ฉันรู้ว่ามันแย่ ตกลงฉันจะทำมันออกไปได้อย่างไร: function doSomething() { var data; function callBack(d) { data = d; } myAsynchronousCall(param1, callBack); // block here and return data when the callback is finished return data; } ตัวอย่าง (หรือขาดดังกล่าว) ใช้ไลบรารีและ / หรือคอมไพเลอร์ซึ่งทั้งสองอย่างนี้ไม่สามารถใช้งานได้สำหรับโซลูชันนี้ ฉันต้องการตัวอย่างที่เป็นรูปธรรมเกี่ยวกับวิธีทำให้บล็อก (เช่นไม่ออกจากฟังก์ชั่น doSomething จนกระทั่งมีการโทรกลับ) โดยไม่ต้องแช่แข็ง UI หากสิ่งนั้นเป็นไปได้ใน JS

8
jQuery ลบตัวเลือกจากตัวเลือก
ฉันมีเพจที่มี 5 ตัวเลือกซึ่งทั้งหมดมีชื่อคลาส 'ct' ฉันต้องการลบตัวเลือกที่มีค่า 'X' จากการเลือกแต่ละรายการขณะใช้งานเหตุการณ์ onclick รหัสของฉันคือ: $(".ct").each(function() { $(this).find('X').remove(); }); ฉันจะไปไหนผิด

13
ลบองค์ประกอบทั้งหมดที่มีอยู่ในอาร์เรย์อื่น
ฉันกำลังมองหาวิธีที่มีประสิทธิภาพในการลบองค์ประกอบทั้งหมดออกจากอาร์เรย์ JavaScript หากมีอยู่ในอาร์เรย์อื่น // If I have this array: var myArray = ['a', 'b', 'c', 'd', 'e', 'f', 'g']; // and this one: var toRemove = ['b', 'c', 'g']; ฉันต้องการทำงานกับ myArray เพื่อปล่อยให้อยู่ในสถานะนี้: ['a', 'd', 'e', 'f'] ด้วย jQuery ฉันใช้grep()และใช้inArray()งานได้ดี: myArray = $.grep(myArray, function(value) { return $.inArray(value, toRemove) < 0; }); …
222 javascript  arrays 

20
ความลึกทั่วไประหว่างวัตถุสองชนิด
ฉันมีสองวัตถุ: และoldObjnewObj ข้อมูลที่oldObjใช้ในการเติมแบบฟอร์มและnewObjเป็นผลมาจากการที่ผู้ใช้เปลี่ยนข้อมูลในแบบฟอร์มนี้และส่งมัน วัตถุทั้งสองอยู่ลึกเช่น พวกเขามีคุณสมบัติที่เป็นวัตถุหรืออาร์เรย์ของวัตถุ ฯลฯ - พวกเขาสามารถอยู่ในระดับ n ลึกดังนั้นอัลกอริทึม diff จะต้องเรียกซ้ำ ตอนนี้ฉันต้องไม่เพียงแค่คิดออกว่ามีการเปลี่ยนแปลงอะไร (เช่นในเพิ่ม / ปรับปรุง / ลบ) จากoldObjถึงnewObjแต่ยังวิธีที่ดีที่สุดแทน จนถึงตอนนี้ความคิดของฉันคือการสร้างgenericDeepDiffBetweenObjectsวิธีการที่จะคืนค่าวัตถุในแบบฟอร์ม{add:{...},upd:{...},del:{...}}แต่ฉันก็คิดว่า: คนอื่นต้องมีสิ่งนี้มาก่อน ดังนั้น ... ไม่มีใครรู้ของห้องสมุดหรือชิ้นส่วนของรหัสที่จะทำเช่นนี้และอาจมีวิธีที่ดีกว่าในการเป็นตัวแทนของความแตกต่าง ปรับปรุง: ฉันคิดว่าวิธีที่ดีกว่าในการแสดงข้อมูลที่อัปเดตโดยใช้โครงสร้างวัตถุเดียวกับnewObjแต่เปลี่ยนค่าคุณสมบัติทั้งหมดเป็นวัตถุในแบบฟอร์ม: {type: '<update|create|delete>', data: <propertyValue>} ดังนั้นถ้าnewObj.prop1 = 'new value'และoldObj.prop1 = 'old value'มันจะตั้งreturnObj.prop1 = {type: 'update', data: 'new value'} อัปเดต 2: มันมีขนดกอย่างแท้จริงเมื่อเราไปถึงคุณสมบัติที่เป็นอาร์เรย์เนื่องจากอาร์เรย์[1,2,3]ควรถูกนับเท่ากับ[2,3,1]ซึ่งง่ายพอสำหรับอาร์เรย์ของชนิดที่มีค่าตามตัวอักษรเช่นสตริง int & bool แต่ยากที่จะจัดการเมื่อมันมาถึง …

10
ทำบางอย่างถ้าความกว้างของหน้าจอน้อยกว่า 960 พิกเซล
ฉันจะทำให้ jQuery ทำอะไรได้ถ้าความกว้างหน้าจอของฉันน้อยกว่า 960 พิกเซล รหัสด้านล่างจะเริ่มการแจ้งเตือนครั้งที่สองเสมอโดยไม่คำนึงถึงขนาดหน้าต่างของฉัน: if (screen.width < 960) { alert('Less than 960'); } else { alert('More than 960'); }
221 javascript  jquery 

9
จะรวมไฟล์ JavaScript หรือไลบรารีในคอนโซล Chrome ได้อย่างไร
มีวิธีที่ง่ายกว่า (เนทีฟหรือไม่) ในการรวมไฟล์สคริปต์ภายนอกในเบราว์เซอร์ Google Chrome หรือไม่? ขณะนี้ฉันทำเช่นนี้: document.head.innerHTML += '<script src="http://example.com/file.js"></script>';

15
มีเทียบเท่า JSON ของ XQuery / XPath?
เมื่อค้นหารายการในอาร์เรย์และแฮชที่ซับซ้อนของ JSON เช่น: [ { "id": 1, "name": "One", "objects": [ { "id": 1, "name": "Response 1", "objects": [ // etc. }] } ] มีภาษาสืบค้นบางประเภทที่ฉันสามารถใช้ค้นหารายการได้in [0].objects where id = 3หรือไม่
221 javascript  json  xpath  xquery 

10
อะไรคือความแตกต่างระหว่าง JSON และสัญกรณ์อักษร Object?
ใครสามารถบอกฉันได้ว่าอะไรคือความแตกต่างหลักระหว่างวัตถุ JavaScript ที่กำหนดโดยใช้เครื่องหมายตัวอักษรของวัตถุและวัตถุ JSON ? ตามหนังสือ JavaScript มันบอกว่านี่เป็นวัตถุที่กำหนดโดยใช้สัญลักษณ์ของวัตถุ : var anObject = { property1 : true, showMessage : function (msg) { alert(msg) } }; เหตุใดมันจึงไม่ใช่วัตถุ JSON ในกรณีนี้ เพียงเพราะมันไม่ได้ถูกกำหนดโดยใช้เครื่องหมายคำพูด?

6
Redux - หลายร้านทำไมไม่ทำอย่างนั้น?
ตามที่ทราบ: ฉันได้อ่านเอกสารสำหรับ Redux (Baobab ด้วย) และฉันได้ทำส่วนแบ่งที่ยุติธรรมของ Googling & test ทำไมจึงแนะนำอย่างยิ่งว่าแอป Redux มีเพียงร้านเดียว? ฉันเข้าใจข้อดี / ข้อเสียของการตั้งค่าแบบ Single-store และการตั้งค่าแบบหลายสาขา ( มีคำถาม & คำตอบมากมายในเรื่องนี้ ) IMO การตัดสินใจทางสถาปัตยกรรมนี้เป็นของผู้พัฒนาแอพตามความต้องการของโครงการ เหตุใดจึงแนะนำอย่างยิ่งสำหรับ Redux ถึงขั้นที่ทำให้เกิดเสียงบังคับ ( แม้ว่าจะไม่มีสิ่งใดหยุดยั้งเราในการสร้างร้านค้าหลายแห่ง ) แก้ไข: ข้อเสนอแนะหลังจากแปลงเป็นร้านค้าเดียว หลังจากไม่กี่เดือนที่ทำงานกับ redux ในสิ่งที่หลายคนจะพิจารณาสปาที่ซับซ้อนฉันสามารถพูดได้ว่าโครงสร้างร้านเดียวได้รับความสุขที่บริสุทธิ์ในการทำงานกับ บางจุดที่อาจช่วยให้ผู้อื่นเข้าใจว่าเหตุใดร้านค้าเดียวกับร้านค้าจำนวนมากจึงเป็นคำถามที่สงสัยในหลายกรณีการใช้งาน: มันน่าเชื่อถือ : เราใช้ตัวเลือกเพื่อขุดผ่านสถานะแอพและรับข้อมูลที่เกี่ยวข้องกับบริบท เรารู้ว่าข้อมูลที่จำเป็นทั้งหมดอยู่ในร้านเดียว มันหลีกเลี่ยงการตั้งคำถามทั้งหมดว่าประเด็นปัญหาของรัฐจะอยู่ที่ไหน มันเร็ว : ร้านค้าของเรามี 100 reducers ใกล้ถ้าไม่มาก แม้ในจำนวนนั้นมีเพียง reducers เพียงเล็กน้อยเท่านั้นที่ประมวลผลข้อมูลในการแจกจ่ายใด …
221 javascript  redux 


15
วิธีการตรวจสอบ FormData
ฉันได้พยายาม และบ่วงผ่านมันใช้console.logfor in นี่คือMDN Referenceบน FormData ความพยายามทั้งสองอยู่ในซอนี้ var fd = new FormData(), key; // poulate with dummy data fd.append("key1", "alskdjflasj"); fd.append("key2", "alskdjflasj"); // does not do anything useful console.log(fd); // does not do anything useful for(key in fd) { console.log(key); } ฉันจะตรวจสอบข้อมูลฟอร์มเพื่อดูว่ามีการตั้งค่าคีย์อย่างไร

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