มีวิธี jQuery unfocus หรือไม่?


193

ฉันจะยกเลิกการโฟกัสข้อความหรืออินพุตได้อย่างไร ฉันหา$('#my-textarea').unfocus();วิธีไม่เจอ?


ยังไม่ใช่ฟังก์ชั่น jQuery .focusout()ที่แตกต่างจากblur() api.jquery.com/focusoutเล็กน้อยโดยอ้างถึงเอกสารThis is distinct from the blur event in that it supports detecting the loss of focus on descendant elements (in other words, it supports event bubbling)
Adrien Be

คำตอบ:


336
$('#textarea').blur()

เอกสารประกอบที่: http://api.jquery.com/blur/


แปลก. ฉันพยายามเบลอ () ก่อนที่หน้าต่างจะเสียโฟกัสเพื่อที่ว่าเมื่อฉันกลับมาพื้นที่ข้อความจะไม่ถูกเลือกตามค่าเริ่มต้น ดูเหมือนจะใช้งานไม่ได้ :(
Alec Smart

บางอย่างเช่น $ ('หน้าต่าง'). เบลอ (ฟังก์ชั่น () {$ ('# textarea'). เบลอ ();});
Alec Smart

บางทีคุณจำเป็นต้องทำให้พื้นที่ข้อความเบลอบนโฟกัสของหน้าต่าง?
Geoff

7
อาจเป็นเพราะคุณกำลังพยายามผูกกิจกรรมก่อนที่จะโหลด DOM ลองใส่รหัสในตัวจัดการที่พร้อมใช้ของหน้าดังนี้: $ (เอกสาร). ready (function () {$ ('# textarea'). blur ()})

ใช้งานได้ดีกับ$('#textarea').bind('blur', function() ...)ยัง
Fedir RYKHTIK

10

จากคำถามของคุณฉันเชื่อว่าคำตอบคือวิธีการทำให้เกิดภาพเบลอไม่ใช่เพียงแค่ตั้งค่าเหตุการณ์ (หรือแม้กระทั่ง):

 $('#textArea').trigger('blur');

คำตอบนี้เหมาะสมสำหรับฉันมากขึ้น ฉันต้องการทราบวิธียกเลิกการเน้นหรือทำให้การป้อนข้อความไม่เน้น ฉันรู้ว่า. blur () มีอยู่ แต่ฉันไม่เข้าใจไวยากรณ์ที่ถูกต้องสำหรับการใช้งานนี้ +1
Partack

7
หากไม่มีพารามิเตอร์.blur()เป็นทางลัดสำหรับ.trigger("blur") api.jquery.com/blur
andreszs

7

คิดว่าคุณกำลังมองหา .focusout()


10
-1 focusoutจะเริ่มทำงานหลังจากอินพุตเริ่มแล้วที่จะสูญเสียโฟกัส ถามต้องการที่จะใส่องค์ประกอบในสถานะที่เรียกกลับ SOA จัดการจะทำเขาไม่ดีdeveloper.mozilla.org/en-US/docs/Web/Reference/Events/focusout api.jquery.com/focusout
Buley

ฉันกำลังมองหาวิธีการนี้และนี่เป็นผลลัพธ์แรกของ Google สำหรับ "jquery select unfocus"
machine yearning

0

สิ่งนี้ใช้ได้กับฉัน:

// Document click blurer
$(document).on('mousedown', '*:not(input,textarea)', function() {
    try {
        var $a = $(document.activeElement).prop("disabled", true);
        setTimeout(function() {
            $a.prop("disabled", false);
        });
    } catch (ex) {}
});

0

ฉันชอบวิธีการต่อไปนี้เพราะมันใช้ได้กับทุกสถานการณ์:

$(':focus').blur();

-12

ดังนั้นคุณสามารถทำได้

$('#textarea').attr('enable',false)

ลองและให้ข้อเสนอแนะ


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