2011-06-01 183 views

回答

0

這是當前解決工作Chrome和Firefox,還是需要的,如果工作歌劇和IE

// put cursor and input text in correct position 

function setCaretPosition(elem, caretPos) { 
    if (elem != null) { 
     if (elem.createTextRange) { 
      var range = elem.createTextRange(); 
      range.move('character', caretPos); 
      range.select(); 
     } 
     else { 

      if (elem.selectionStart) { 
       elem.setSelectionRange(caretPos, caretPos); 
       elem.focus(); 

       // Workaround for FireFox overflow no scroll problem 
       if ($.browser.mozilla) { 

        // Trigger a "space" keypress. 
        var evt = document.createEvent("KeyboardEvent"); 
        evt.initKeyEvent("keypress", true, true, null, false, false, false, false, 0, 32); 
        elem.dispatchEvent(evt); 

       } 
       // for webkit 
       if ($.browser.webkit || $.browser.msie) { 
        var te = document.createEvent('TextEvent'); 
        // Trigger a "space" keypress. 
        te.initTextEvent('textInput', true, true, window, ' '); 
        elem.dispatchEvent(te); 
       } 

      } 
      else 
       elem.focus(); 
     } 
    } 
} 
+0

即使是正確的答案,不確定Opera或Ie工作。 – 2011-08-03 02:16:56

-1
$("#test").trigger(event.type); 
+0

你測試檢查?對於我不工作,我在Mac OS上使用Firefox 3.6。不知道這是否會成爲問題。 – 2011-06-01 10:36:06

+0

你到底想要達到什麼目標?事件發生,但如果您沒有將事件綁定到輸入,您將不會看到太多內容。 – devmatt 2011-06-01 11:37:31

+0

[已更新的鏈接](http://jsfiddle.net/SQZVH/2/)包含事件投入,然後在您創建的事件被觸發時調用。 – devmatt 2011-06-01 11:39:40