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

อย่าใช้แท็กนี้! JavaScript ไม่มีโครงสร้างเหตุการณ์ ใช้ [dom-events], [jquery-events], [backbone-events]; หรือไลบรารี / สภาพแวดล้อม + [เหตุการณ์] เช่น [node.js] + [เหตุการณ์]

15
วิธีแก้ปัญหาการเชื่อมเหตุการณ์ JavaScript / jQuery ด้วย Firebug หรือเครื่องมือที่คล้ายกัน
ฉันต้องแก้จุดบกพร่องเว็บแอปพลิเคชันที่ใช้ jQuery เพื่อทำการจัดการDOMที่ซับซ้อนและยุ่งเหยิง ณ จุดหนึ่งเหตุการณ์บางอย่างที่ถูกผูกมัดกับองค์ประกอบบางอย่างไม่ถูกไล่ออกและหยุดทำงาน หากฉันมีความสามารถในการแก้ไขแหล่งที่มาของแอปพลิเคชันฉันจะเจาะลึกลงไปและเพิ่มงบงบFirebug จำนวนมาก console.log()และแสดงความคิดเห็น / รหัส uncomment ของรหัสเพื่อพยายามระบุปัญหา แต่สมมติว่าฉันไม่สามารถแก้ไขรหัสแอปพลิเคชันและต้องทำงานอย่างสมบูรณ์ใน Firefox โดยใช้ Firebug หรือเครื่องมือที่คล้ายกัน Firebug นั้นดีมากที่ให้ฉันนำทางและจัดการ DOM ถึงตอนนี้ฉันยังไม่สามารถหาวิธีการดีบักเหตุการณ์ด้วย Firebug ได้ โดยเฉพาะฉันต้องการเห็นรายการตัวจัดการเหตุการณ์ที่ถูกผูกไว้กับองค์ประกอบเฉพาะในเวลาที่กำหนด (ใช้จุดพัก Firebug JavaScript เพื่อติดตามการเปลี่ยนแปลง) แต่ทั้ง Firebug ไม่มีความสามารถในการดูเหตุการณ์ที่ถูกผูกไว้หรือฉันโง่เกินไปที่จะค้นหา :-) คำแนะนำหรือความคิดใด ๆ โดยหลักการแล้วฉันต้องการดูและแก้ไขเหตุการณ์ที่ผูกกับองค์ประกอบเช่นเดียวกับที่ฉันสามารถแก้ไข DOM วันนี้

15
ใช้ jQuery เพื่อทดสอบว่าอินพุตมีโฟกัสหรือไม่
ในหน้าแรกของเว็บไซต์ที่ฉันกำลังสร้างหลายแห่ง<div>ใช้ CSS :hoverหลอกคลาสเพื่อเพิ่มเส้นขอบเมื่อเมาส์อยู่เหนือพวกเขา หนึ่งในนั้น<div>ประกอบด้วย a <form>ซึ่งใช้ jQuery จะเก็บขอบไว้หากอินพุตภายในนั้นมีโฟกัส มันทำงานได้อย่างสมบูรณ์ยกเว้นว่า IE6 ไม่รองรับ:hoverองค์ประกอบอื่นที่ไม่ใช่<a>s ดังนั้นสำหรับเบราว์เซอร์นี้เราเท่านั้นที่ใช้ jQuery เพื่อเลียนแบบ CSS :hoverโดยใช้$(#element).hover()เมธอด ปัญหาเดียวคือตอนนี้ที่ jQuery จัดการทั้งแบบฟอร์มfocus() และ hover()เมื่ออินพุตมีการโฟกัสผู้ใช้จะย้ายเมาส์เข้าและออกเส้นขอบจะหายไป ฉันคิดว่าเราสามารถใช้เงื่อนไขบางอย่างเพื่อหยุดพฤติกรรมนี้ ตัวอย่างเช่นหากเราทดสอบโดยใช้เมาส์หากอินพุตใด ๆ มีโฟกัสเราสามารถหยุดเส้นขอบไม่ให้หายไปได้ AFAIK ไม่มี:focusตัวเลือกใน jQuery ดังนั้นฉันไม่แน่ใจว่าจะทำให้สิ่งนี้เกิดขึ้นได้อย่างไร ความคิดใด ๆ

9
ฉันสามารถค้นหากิจกรรมที่ผูกไว้กับองค์ประกอบด้วย jQuery ได้หรือไม่
ฉันผูกตัวจัดการเหตุการณ์สองตัวที่ลิงค์นี้: <a href='#' id='elm'>Show Alert</a> JavaScript: $(function() { $('#elm').click(_f); $('#elm').mouseover(_m); }); function _f(){alert('clicked');} function _m(){alert('mouse over');} มีวิธีที่จะได้รับรายชื่อของเหตุการณ์ทั้งหมดที่ถูกผูกไว้ในองค์ประกอบในกรณีนี้ในองค์ประกอบใด ๆid="elm"?

6
ส่งเหตุการณ์ของเมาส์ผ่านองค์ประกอบตำแหน่งอย่างแน่นอน
ฉันกำลังพยายามที่จะจับภาพเหตุการณ์ของเมาส์บนองค์ประกอบที่มีองค์ประกอบที่จัดวางอย่างอื่นอยู่ด้านบนของมัน ตอนนี้เหตุการณ์ในองค์ประกอบที่มีการจัดวางอย่างถูกต้องจะพุ่งเข้าหาผู้ปกครอง แต่ฉันต้องการให้มัน "โปร่งใส" สำหรับกิจกรรมเมาส์เหล่านี้และส่งต่อไปยังสิ่งที่อยู่ด้านหลัง ฉันควรใช้สิ่งนี้อย่างไร

5
jQuery สูญเสียการโฟกัส
ฉันพยายามแสดงคอนเทนเนอร์ถ้าฟิลด์อินพุตได้รับโฟกัสและ - นั่นเป็นปัญหาจริง - ซ่อนคอนเทนเนอร์ถ้าโฟกัสหายไป มีเหตุการณ์ตรงกันข้ามสำหรับการโฟกัสของ jQuery หรือไม่ โค้ดตัวอย่างบางส่วน: <input type="text" value="" name="filter" id="filter"/> <div id="options">some cool options</div> <script type="text/javascript"> $('#options').hide(); $('#filter').focus(function() { $('#options').appear(); }); </script> และสิ่งที่ฉันต้องการทำคืออะไรเช่นนี้: $('#filter').focus_lost(function() { $('#options').hide(); });

5
วิธีการทริกเกอร์เหตุการณ์การเปลี่ยนแปลง jQuery ในโค้ด
ฉันมีเหตุการณ์การเปลี่ยนแปลงที่ทำงานได้ดี แต่ฉันต้องการรับเงินคืน ดังนั้นฉันจึงมีฟังก์ชั่นที่ถูกเรียกใช้ในการเปลี่ยนแปลงที่จะ "เปลี่ยน" รายการแบบเลื่อนลงอื่น ๆ ตามตัวเลือกคลาส (สังเกตเห็น "แบบเลื่อนลง" ซึ่งอาจมีมากกว่าหนึ่ง) การเปลี่ยนพร็อกซีนี้ไม่เรียกใช้ฟังก์ชันและล้มเหลว ฉันจะทำให้มันทำงานได้ยังไง? รหัส $(document).ready(function () { var activeDropBox = null; $("select.drop-box").change(function () { var questionId = $(this).attr("questionId"); var selectedAnswer = $(this).val(); activeDropBox = this; alert(this.questionId); $.ajax( { type: "POST", url: answerChangedActionUrl, data: { questionId: questionId, selectedValue: selectedAnswer }, success: function …

6
ความแตกต่างระหว่าง $ (นี้) กับ event.target ใช่ไหม
ฉันใหม่สำหรับ jQuery และกำลังทำพาเนลแบบแท็บตามด้วยบทช่วยสอนในJavaScript และ jQuery: The Missing Manualมีบรรทัดแรกที่ผู้เขียนทำสิ่งนี้: var target = $(this); แต่ฉันพยายามทำอย่างนั้น var target = evt.target; และฉันได้รับข้อผิดพลาดนั้น: Uncaught TypeError: Object http://localhost/tabbedPanels/#panel1 has no method 'attr' และเมื่อฉันเปลี่ยนevt.targetกลับไป$(this)เป็นมันทำงานเหมือนมีเสน่ห์ ฉันอยากรู้ว่าอะไรคือความแตกต่างระหว่าง$(this)และevt.target? นี่คือรหัสของฉันในกรณีที่คุณต้องการ: index.html: <!DOCTYPE html> <html> <head> <title>Tabbed Panel</title> <style> body { width : 100%; height: 100%; } #wrapper { margin : auto; …

4
อะไรคือความแตกต่างระหว่างเหตุการณ์ที่เกิดกับเมาส์โอเวอร์และเมาส์เซ็นเตอร์?
ฉันได้ใช้เสมอmouseoverเหตุการณ์ แต่ในขณะที่อ่านเอกสาร jQuery mouseenterผมพบว่า ดูเหมือนว่าพวกเขาจะทำงานเหมือนกันทุกประการ มีความแตกต่างระหว่างทั้งสองหรือไม่และถ้าเป็นเช่นนั้นฉันควรใช้มันเมื่อใด (ยังใช้กับmouseoutvs mouseleave)

5
HTML <input type = 'file'> เหตุการณ์การเลือกไฟล์
สมมติว่าเรามีรหัสนี้: &lt;form action='' method='POST' enctype='multipart/form-data'&gt; &lt;input type='file' name='userFile'&gt;&lt;br&gt; &lt;input type='submit' name='upload_btn' value='upload'&gt; &lt;/form&gt; ซึ่งส่งผลให้เกิดสิ่งนี้: เมื่อผู้ใช้คลิกปุ่ม 'เรียกดู ... ' กล่องโต้ตอบค้นหาไฟล์จะเปิดขึ้น: ผู้ใช้จะเลือกไฟล์โดยการดับเบิลคลิกที่ไฟล์หรือคลิกปุ่ม "เปิด" มีเหตุการณ์ Javascript ที่ฉันสามารถใช้เพื่อรับการแจ้งเตือนหลังจากเลือกไฟล์ได้หรือไม่

5
เรียกใช้ JavaScript เมื่อองค์ประกอบสูญเสียโฟกัส
ฉันมีอินพุต HTML มาตรฐานที่ฉันต้องการเรียกใช้โค้ด JavaScript เมื่อมันสูญเสียโฟกัส น่าเสียดายที่การค้นหาใน Google ของฉันไม่เปิดเผยวิธีการทำเช่นนี้ เพื่อให้ชัดเจนฉันกำลังมองหาวิธีทำสิ่งนี้: &lt;input type="text" name="name" value="value" onlosefocus="alert(1);"/&gt;


4
เหตุการณ์การออกจากหน้าสกัดกั้น
เมื่อแก้ไขเพจในระบบของฉันผู้ใช้อาจตัดสินใจนำทางไปยังเว็บไซต์อื่นและการทำเช่นนั้นอาจสูญเสียการแก้ไขทั้งหมดที่ไม่ได้บันทึกไว้ ฉันต้องการสกัดกั้นความพยายามที่จะไปที่หน้าอื่นและแจ้งให้ผู้ใช้แน่ใจว่าต้องการให้สิ่งนี้เกิดขึ้นเนื่องจากอาจสูญเสียงานปัจจุบัน Gmail ทำในลักษณะที่คล้ายกันมาก ตัวอย่างเช่นเขียนอีเมลใหม่เริ่มพิมพ์ลงในเนื้อหาข้อความและป้อนตำแหน่งใหม่ในแถบที่อยู่ (พูดว่า twitter.com หรืออะไรก็ได้) มันจะถามว่า "แน่ใจหรือ" แนวคิดวิธีการจำลองสิ่งนี้? ฉันกำหนดเป้าหมาย IE8 แต่ต้องการใช้งานร่วมกับ FF &amp; Chrome ด้วย

8
ฉันจะทำให้ปุ่ม HTML ไม่โหลดหน้าซ้ำได้อย่างไร
ฉันมีปุ่ม ( &lt;input type="submit"&gt;) เมื่อคลิกแล้วหน้าจะโหลดซ้ำ เนื่องจากฉันมีhide()ฟังก์ชั่นjQuery บางอย่างที่เรียกใช้ในการโหลดหน้าจึงทำให้องค์ประกอบเหล่านี้ถูกซ่อนอีกครั้ง ฉันจะทำให้ปุ่มไม่ต้องทำอะไรได้อย่างไรดังนั้นฉันจึงยังสามารถเพิ่มการทำงานบางอย่างที่เกิดขึ้นเมื่อคลิกปุ่ม แต่ไม่สามารถโหลดหน้าซ้ำได้

6
ฉันจะรับ jquery .val () หลังจากเหตุการณ์การกดแป้นพิมพ์ได้อย่างไร
ฉันได้: $(someTextInputField).keypress(function() { alert($(this).val()); }); ตอนนี้การแจ้งเตือนจะส่งคืนค่าก่อนการกดแป้นทุกครั้ง (เช่นช่องว่างฉันพิมพ์ 'a' และการแจ้งเตือนจะให้ฉัน '' จากนั้นฉันพิมพ์ 'b' และการแจ้งเตือนจะให้ 'a' ... ) แต่ฉันต้องการค่าหลังจากการกดแป้น - ฉันจะทำได้อย่างไร พื้นหลัง: ฉันต้องการเปิดใช้งานปุ่มทันทีที่ช่องข้อความมีอักขระอย่างน้อยหนึ่งตัว ดังนั้นฉันจึงเรียกใช้การทดสอบนี้ในทุกเหตุการณ์การกดแป้นพิมพ์ แต่การใช้ val กลับ () ผลลัพธ์จะอยู่ข้างหลังหนึ่งก้าวเสมอ การใช้เหตุการณ์ change () ไม่ใช่ตัวเลือกสำหรับฉันเพราะปุ่มจะถูกปิดใช้งานจนกว่าคุณจะออกจากกล่องข้อความ หากมีวิธีที่ดีกว่านี้ฉันยินดีที่จะรับฟัง!

11
เปิดป๊อปอัปและรีเฟรชหน้าพาเรนต์เมื่อปิดป๊อปอัป
ฉันเปิดหน้าต่างป๊อปอัปข้าง window.open ใน JavaScript ฉันต้องการรีเฟรชหน้าหลักเมื่อฉันปิดหน้าต่างป๊อปอัปนี้ (onclose event?) ฉันจะทำอย่างไร window.open("foo.html","windowName", "width=200,height=200,scrollbars=no");

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