的change
事件是完全可靠的,但只有當文本區域失去焦點,這意味着只要用戶嘗試點擊按鈕,它就會消失火災。因此,這具有期望的結果,但用戶體驗差。
另一種方法是監視textarea的變化,這是開始變得棘手的地方。如果您使用基於事件的方法來執行此操作,則需要檢測鍵盤輸入,粘貼和拖放操作。並非所有瀏覽器都支持粘貼檢測(特別是Firefox 2和所有版本的Opera都不支持),所以它已經變得棘手。更簡單,更多瀏覽器但更髒的方法是基於輪詢的方法,您可以將它與textarea的blur
事件的處理程序結合使用,以防止用戶在輪詢之間單擊該按鈕的可能性。下面,只要它是隻輪詢textarea的具有焦點:
var textarea = document.getElementById("your_textarea");
textarea.onfocus = function() {
var initialValue = textarea.value;
function testForChange() {
if (textarea.value != initialValue) {
// Do the button hiding stuff
}
}
textarea.onblur = function() {
window.clearInterval(timer);
testForChange();
textarea.onblur = null;
};
var timer = window.setInterval(function() {
testForChange();
}, 50);
};
我可以在邏輯上跟隨是如何工作的,因此它可能會有所幫助,但不幸的是我不能使用jQuery。我將研究textarea的按鍵事件和onchange事件。我應該指定,但是,無論如何。 – bill 2010-09-20 06:37:20