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

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

12
javascript ค้นหาและลบวัตถุในอาร์เรย์ตามค่าคีย์
ฉันลองใช้หลายวิธีในการค้นหาวัตถุในอาร์เรย์โดยที่ ID = var และหากพบให้ลบวัตถุออกจากอาร์เรย์และส่งคืนอาร์เรย์ของวัตถุใหม่ ข้อมูล: [ {"id":"88","name":"Lets go testing"}, {"id":"99","name":"Have fun boys and girls"}, {"id":"108","name":"You are awesome!"} ] ฉันสามารถค้นหาอาร์เรย์โดยใช้ jQuery $ grep; var id = 88; var result = $.grep(data, function(e){ return e.id == id; }); แต่ฉันจะลบวัตถุทั้งหมดได้อย่างไรเมื่อ id == 88 และส่งคืนข้อมูลเช่นนี้: ข้อมูล: [ {"id":"99","name":"Have fun boys and girls"}, {"id":"108","name":"You …

5
เปลี่ยนความเร็วของคำแนะนำเครื่องมือของแอตทริบิวต์ "title"
มีวิธีเปลี่ยนความรวดเร็วของคำแนะนำเครื่องมือจากแอตทริบิวต์ "title" ขององค์ประกอบหรือไม่ ฉันต้องการถ้าคำแนะนำเครื่องมือปรากฏขึ้นทันที แต่ดูเหมือนว่าจะใช้เวลาสักครู่
145 javascript  html 

18
ฉันจะรับข้อมูลจากเมตาแท็กด้วย JavaScript ได้อย่างไร
ข้อมูลที่ฉันต้องการอยู่ในเมตาแท็ก ฉันจะเข้าถึง"content"ข้อมูลของเมตาแท็กได้property="video"อย่างไร? HTML: <meta property="video" content="http://video.com/video33353.mp4" />

18
ตั้งค่าสไตล์แท็บที่ใช้งานด้วย AngularJS
ฉันมีเส้นทางที่กำหนดไว้ใน AngularJS เช่นนี้: $routeProvider .when('/dashboard', {templateUrl:'partials/dashboard', controller:widgetsController}) .when('/lab', {templateUrl:'partials/lab', controller:widgetsController}) ฉันมีลิงค์บางอันบนแถบด้านบนที่มีสไตล์เป็นแท็บ ฉันจะเพิ่มคลาส 'active' ลงในแท็บโดยขึ้นอยู่กับเทมเพลตหรือ url ปัจจุบันได้อย่างไร

6
การใช้มีดโกนฉันจะสร้าง Boolean ให้กับตัวแปร JavaScript ได้อย่างไร
ฉันจะแสดง Boolean เป็นตัวแปร JavaScript ในไฟล์ cshtml ได้อย่างไร ปัจจุบันนี้แสดงข้อผิดพลาดทางไวยากรณ์: <script type="text/javascript" > var myViewModel = { isFollowing: @Model.IsFollowing // This is a C# bool }; </script>

11
Jest SecurityError: localStorage ไม่สามารถใช้ได้กับต้นกำเนิดทึบแสง
เมื่อฉันต้องการเรียกใช้โครงการด้วยคำสั่งnpm run testฉันได้รับข้อผิดพลาดด้านล่าง อะไรทำให้เกิดสิ่งนี้ FAIL ● Test suite failed to run SecurityError: localStorage is not available for opaque origins at Window.get localStorage [as localStorage] (node_modules/jsdom/lib/jsdom/browser/Window.js:257:15) at Array.forEach (<anonymous>)

3
เหตุใด {} + {} จึงไม่มี NaN ในคอนโซล Chrome อีกต่อไป
ฉันสังเกตเห็นในวันนี้ว่า Chrome 49 จะไม่แสดงผลอีกต่อไปNaNเมื่อคุณพิมพ์{}+{}ลงในคอนโซล [object Object][object Object]แต่มันจะออกผลลัพธ์สตริง ทำไมนี้ ภาษาเปลี่ยนไปหรือไม่?

18
ทางเลือกแทน JavaScript
ในขณะนี้ภาษาที่รองรับอย่างสมบูรณ์เท่านั้นและมาตรฐาน de-facto สำหรับการจัดการทรี DOM ในเบราว์เซอร์คือ JavaScript ดูเหมือนว่าจะมีปัญหาการออกแบบที่ลึกซึ่งทำให้เป็นแหล่งที่วางทุ่นระเบิดและช่องโหว่ด้านความปลอดภัยสำหรับมือใหม่ คุณรู้หรือไม่ว่ามีความคิดริเริ่มหรือการวางแผนที่จะแนะนำภาษาที่ดีขึ้น (ออกแบบใหม่) ทุกชนิด (ไม่เพียง แต่จาวาสคริปต์) สำหรับการจัดการต้นไม้ DOM และคำขอ HTTP ในเบราว์เซอร์รุ่นต่อไปหรือไม่ ถ้าใช่แผนงานในการบูรณาการเข้ากับอะไรพูด Firefox และถ้าไม่มีเหตุผลอะไร (นอกเหนือจากการทำงานร่วมกัน) ควรเป็น JavaScript เป็นภาษาเดียวที่สนับสนุนบนแพลตฟอร์มเบราว์เซอร์? ฉันใช้ jQuery แล้วและฉันยังอ่าน "javascript: the good parts" ด้วย คำแนะนำนั้นดี แต่สิ่งที่ฉันไม่สามารถเข้าใจได้คือ: ทำไมมีเพียงจาวาสคริปต์ บนฝั่งเซิร์ฟเวอร์ (แพลตฟอร์มที่คุณโปรดปราน), เราสามารถจัดการทรี DOM กับทุกภาษาได้แม้กระทั่งภาษา เหตุใดฝั่งไคลเอ็นต์ (แพลตฟอร์มเบราว์เซอร์) จึงสนับสนุนจาวาสคริปต์เท่านั้น

22
typescript: error TS2693: 'Promise' อ้างถึงประเภทเท่านั้น แต่มีการใช้เป็นค่าที่นี่
ฉันกำลังพยายามใช้ typescript สำหรับ AWS Lambda ของฉันและฉันได้รับข้อผิดพลาดต่อไปนี้เมื่อฉันใช้สัญญา ข้อผิดพลาด TS2693: 'สัญญา' หมายถึงประเภทเท่านั้น แต่มีการใช้เป็นค่าที่นี่ ฉันลองใช้รูปแบบต่าง ๆ ต่อไปนี้ในรหัส ใช้คอนสตรัคสัญญา responsePromise = new Promise((resolve, reject) => { return reject(new Error(`missing is needed data`)) }) ใช้ Promise.reject responsePromise = Promise.reject(new Error(`Unsupported method "${request.httpMethod}"`)); รุ่น ต่อไปนี้เป็นรุ่นในการอ้างอิง dev ของฉัน: "typescript": "^2.2.2" "@types/aws-lambda": "0.0.9", "@types/core-js": "^0.9.40", "@types/node": "^7.0.12", เนื้อหาของ …

27
วิธีการป้องกันเอฟเฟกต์โฮเวอร์แบบเหนียวสำหรับปุ่มบนอุปกรณ์ระบบสัมผัส
ฉันได้สร้างม้าหมุนที่มีปุ่มก่อนหน้าและปุ่มถัดไปที่สามารถมองเห็นได้เสมอ ปุ่มเหล่านี้มีสถานะโฮเวอร์พวกเขาเปลี่ยนเป็นสีน้ำเงิน บนอุปกรณ์ระบบสัมผัสเช่น iPad สถานะโฮเวอร์จะเหนียวดังนั้นปุ่มจะยังคงเป็นสีฟ้าหลังจากแตะ ฉันไม่ต้องการสิ่งนั้น ฉันสามารถเพิ่มno-hoverคลาสontouchendสำหรับแต่ละปุ่มและทำให้ CSS เป็นแบบนี้: button:not(.no-hover):hover { background-color: blue; }แต่มันอาจจะไม่ดีสำหรับประสิทธิภาพและไม่ได้จัดการอุปกรณ์เช่น Chromebook Pixel (ซึ่งมีทั้งหน้าจอสัมผัสและเมาส์) อย่างถูกต้อง ฉันสามารถเพิ่มtouchคลาสให้กับdocumentElementและทำให้ CSS ของฉันเป็นแบบนี้: html:not(.touch) button:hover { background-color: blue; }แต่มันก็ไม่ทำงานบนอุปกรณ์ที่มีทั้งการสัมผัสและเมาส์ ontouchendสิ่งที่ผมต้องการคือการเอารัฐเลื่อน แต่ดูเหมือนว่าจะเป็นไปไม่ได้ การมุ่งเน้นองค์ประกอบอื่นไม่ได้ลบสถานะโฮเวอร์ การแตะองค์ประกอบอื่นด้วยตนเองทำได้ แต่ฉันไม่สามารถเรียกใช้งานได้ใน JavaScript การแก้ปัญหาทั้งหมดที่ฉันพบดูเหมือนไม่สมบูรณ์ มีวิธีแก้ไขปัญหาที่สมบูรณ์แบบหรือไม่
144 javascript  css  hover  touch 


21
ฉันจะปิดดร็อปดาวน์เมื่อคลิกภายนอกได้อย่างไร
ฉันต้องการปิดเมนูดร็อปดาวน์ของฉันเมื่อผู้ใช้คลิกที่ใดก็ได้นอกเหนือจากดรอปดาวน์นั้นและฉันต้องการจะทำเช่นนั้นกับ Angular2 และกับ Angular2 "วิธี" ... ฉันติดตั้งโซลูชันแล้ว แต่ฉันไม่รู้สึกมั่นใจเลย ฉันคิดว่าต้องมีวิธีที่ง่ายที่สุดในการบรรลุผลลัพธ์เดียวกันดังนั้นหากคุณมีความคิดใด ๆ ... มาคุยกัน :)! นี่คือการดำเนินการของฉัน: องค์ประกอบแบบเลื่อนลง: นี่เป็นส่วนประกอบสำหรับดรอปดาวน์ของฉัน: ทุกครั้งที่ส่วนนี้มันตั้งค่าให้สามารถมองเห็นได้ (ตัวอย่างเช่นเมื่อผู้ใช้คลิกที่ปุ่มเพื่อแสดง) ก็สมัครเป็นสมาชิก "ทั่วโลก" rxjs เรื่องuserMenuเก็บไว้ภายในSubjectsService และทุกครั้งที่มันถูกซ่อนไว้ ทุกการคลิกที่ใดก็ได้ภายในเทมเพลตของส่วนประกอบนี้จะเรียกใช้เมธอดonClick ()ซึ่งเพิ่งหยุดเหตุการณ์ที่เดือดดาลไปด้านบน (และส่วนประกอบแอปพลิเคชัน) นี่คือรหัส export class UserMenuComponent { _isVisible: boolean = false; _subscriptions: Subscription<any> = null; constructor(public subjects: SubjectsService) { } onClick(event) { event.stopPropagation(); } set isVisible(v) …

14
บูลีนในคำสั่ง if
วันนี้ฉันได้รับข้อสังเกตเกี่ยวกับรหัสโดยคำนึงถึงวิธีการตรวจสอบว่าตัวแปรเป็นจริงหรือเท็จในการมอบหมายงานของโรงเรียน รหัสที่ฉันเขียนมีลักษณะดังนี้: var booleanValue = true; function someFunction(){ if(booleanValue === true){ return "something"; } } พวกเขาบอกว่ามันดีกว่าหรือดีกว่าที่จะเขียนแบบนี้: var booleanValue = true; function someFunction(){ if(booleanValue){ return "something"; } } คำพูดที่ฉันได้รับเกี่ยวกับส่วน "=== จริง" คือมันไม่จำเป็นและสามารถสร้างความสับสน อย่างไรก็ตามความคิดของฉันคือมันจะดีกว่าที่จะตรวจสอบว่าตัวแปรเป็นบูลีนหรือไม่โดยเฉพาะอย่างยิ่งตั้งแต่ Javascript เป็นภาษาที่หลวม ในตัวอย่างที่สองสตริงจะส่งคืน "บางอย่าง" ด้วย ดังนั้นคำถามของฉัน มันจะดีกว่าที่จะปล่อยส่วน "=== จริง" ในอนาคตหรือไม่ก็เป็นการดีที่จะตรวจสอบชนิดของตัวแปรเช่นกัน แก้ไข: ในรหัส "ของจริง" ของฉันบูลีนแสดงให้เห็นว่าภาพถูกลบหรือไม่ดังนั้นค่า boolValue เท่านั้นที่ควรจะมีจริงหรือเท็จ ตัวอย่างเช่น 0 …

11
ดาวน์โหลดวัตถุ JSON เป็นไฟล์จากเบราว์เซอร์
ฉันมีรหัสต่อไปนี้เพื่อให้ผู้ใช้ดาวน์โหลดสตริงข้อมูลในไฟล์ csv exportData = 'data:text/csv;charset=utf-8,'; exportData += 'some csv strings'; encodedUri = encodeURI(exportData); newWindow = window.open(encodedUri); มันใช้งานได้ดีว่าถ้าลูกค้าใช้รหัสมันจะสร้างหน้าว่างและเริ่มดาวน์โหลดข้อมูลในไฟล์ csv ดังนั้นฉันจึงพยายามทำสิ่งนี้กับวัตถุ JSON เช่น exportData = 'data:text/json;charset=utf-8,'; exportData += escape(JSON.stringify(jsonObject)); encodedUri = encodeURI(exportData); newWindow = window.open(encodedUri); แต่ฉันเห็นเพียงหน้าเว็บที่มีข้อมูล JSON แสดงอยู่เท่านั้นไม่ดาวน์โหลด ฉันผ่านการวิจัยบางอย่างและอันนี้อ้างว่าทำงานได้ แต่ฉันไม่เห็นความแตกต่างกับรหัสของฉัน ฉันทำอะไรบางอย่างในรหัสของฉัน? ขอบคุณที่อ่านคำถามของฉัน :)
144 javascript  json 

8
ผูกหลายเหตุการณ์กับผู้ฟัง (โดยไม่มี JQuery)?
ในขณะที่ทำงานกับกิจกรรมของเบราว์เซอร์ฉันได้เริ่มรวมการทำงานของ touchEvents ของ Safari เข้ากับอุปกรณ์มือถือ ฉันพบว่าaddEventListeners กำลังซ้อนกับเงื่อนไข โครงการนี้ไม่สามารถใช้ JQuery ผู้ฟังเหตุการณ์มาตรฐาน: /* option 1 */ window.addEventListener('mousemove', this.mouseMoveHandler, false); window.addEventListener('touchmove', this.mouseMoveHandler, false); /* option 2, only enables the required event */ var isTouchEnabled = window.Touch || false; window.addEventListener(isTouchEnabled ? 'touchmove' : 'mousemove', this.mouseMoveHandler, false); JQuery's bindอนุญาตให้มีหลายเหตุการณ์เช่น: $(window).bind('mousemove touchmove', function(e) { //do something; …

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