中文輸入法觸發input事件 js繫結事件:addEventListener和on的區別 select下拉框用empty()方法 清空option
阿新 • • 發佈:2018-12-19
中文輸入法觸發input事件
compositionstart
當瀏覽器有非直接的文字輸入時, compositionstart事件觸發.
compositionend
當瀏覽器是直接的文字輸入時, compositionend事件觸發
解決方法:
這裡還有一個問題:
在有些瀏覽器如谷歌中,先響應input後響應compositionend,此時狀態inputLock為true導致input內部方法無法執行。
若要解決這個問題:
可以在compositionend中也加上input方法體,但是這樣太繁瑣。
另一種方法是給input內部方法設定了setTimeout,0.
這些方法均有可能導致在其他環境下input內部方法被執行兩次。
input事件中文觸發多次問題研究:
https://www.cnblogs.com/mopagunda/p/8343031.html
js繫結事件:addEventListener和on的區別
為某元素設定事件觸發函式時,可能會覺得addEventListener和on事件的功能差不多,但是,addEventListener除了可以設定元素觸發順序外,還能多次繫結事件,因為 on 事件多次繫結的話會出現覆蓋。
舉例說明:
結果會依次提示“message1”,“message2“。
但是js這麼寫的話:
這裡就只會提示最後一個“message2”,因為onclick作為物件div1的一個屬性,第二次對其進行賦值就會覆蓋之前的函式值,這樣on事件在某些場合就不適用了。