2017-01-27 60 views
0

我試圖通過JS解僱鍵盤來響應按鈕按下,但我沒有任何運氣。Mobile Safari - 使用Javascript關閉鍵盤

設置:

  1. 我有一個接受和取消按鈕,配之以textarea
  2. 單擊取消按鈕後,我的視圖對象將調用textAreaElement.blur()
  3. 然後它將刪除接受和取消按鈕。

預期:

  • 字段失去焦點(視覺上和其他)。
  • 鍵盤被解僱。

實際:

  • 字段出現失去焦點(在視覺上,不顯示光標),和編程。
  • 鍵盤仍然呈現。

我已經嘗試了通常的Google,但他們似乎都認爲在關注元素上調用blur應該足夠了。一位用戶甚至建議致電$('input').blur()以確保所有字段都模糊不清,但這似乎沒有什麼區別。

回答

0

...我剛想清楚爲什麼會發生這種情況。

我提到我正在刪除此字段的接受和取消按鈕。具體如下發生:

  1. 致電textAreaElement.blur()
  2. 動畫按鈕消失。
  3. 完成動畫後,buttons.remove()

當取消按鈕收到點擊時,它獲得焦點(鍵盤保持活動狀態)。當動畫完成回調中隨後取消取消按鈕時,將焦點應用於前一個可調焦元素,即textarea

因此,我不得不這樣做的效果:

textarea.blur()#已經沒有焦點。 buttons.remove()#刪除按鈕,將它們的焦點應用回textarea。

的解決方案是替代:

  1. 動畫的按鈕消失。
  2. 等待動畫完成,buttons.remove()
  3. 致電textAreaElement.blur()