當按鈕被鬆開時,發生 keyup 事件。它發生在當前得到焦點的元素上。javascript
當keyup+回車事件(event.keyCode==13)結合使用時,監聽不到搜狗輸入法中文狀況下的輸入html
此方法是DOM變更事件中的方法,它是在DOM結構中發生任何變化時觸發,用在可編輯狀態下的div標籤java
input標籤不能夠用此方法jquery
jquery中並無相應效果的方法,咱們能夠經過bind綁定input propertychange方法瀏覽器
<input />和<div contenteditable="true">標籤均可以使用函數
propertychange是爲了兼容IE9如下的版本測試
<body> <div class="keyboard-event"> <label>請輸入</label> <input typ="text" name="" class="input-key"/> <div> <span>編輯狀態的div</span> <div class="div-content" contenteditable="true"></div> </div> </div> <script> $(document).ready(function(){ //input標籤綁定input propertychange $(".input-key").bind("input propertychange",function(){ var self=$(this); console.log("input獲取的值----"+self.val()); }); //可編輯狀態下的div綁定input propertychange $(".div-content").bind("input propertychange",function(){ var self=$(this); console.log("div獲取的值----"+self.text()); }); }); </script> </body>
通過測試,可編輯狀態下的div在IE10(包括IE10)如下版本的瀏覽器都不支持此屬性,由於沒有比IE10更高的瀏覽器,目前只測試到IE10this
思路:當文本框獲取焦點時開啓定時器,每隔必定的毫秒數去獲取文本的值,看是否發生變化,根據需求,去作相應的操做,最後必定要關閉掉定時器,要否則setInterval() 方法會不停地調用函數spa
適用於全部的可編輯狀態的標籤,能監聽到複製過來的文字,也能監聽搜狗拼音中文狀態下的回車事件,解決了keyup事件回車時監聽不到的狀況,靈活性好,根據項目實踐經驗推薦使用此方法code
//獲取焦點 $(".div-content").focus(function(){ var self=$(this); interval=setInterval(function(){ //TODO console.log("獲取文本的值-----"+self.text()); },200) }); //失去焦點 $(".div-content").blur(function(){ clearInterval(interval); });