我使用不同的文本字段作爲CodeMirror的代理。我想要使用諸如closebrackets.js
等功能,這些功能通過鍵盤事件激活,如,keypress
和keyup
。我嘗試過幾種不同的方法來觸發這些事件,其中沒有造成CodeMirror收到任何東西:如何在CodeMirror中觸發鍵盤事件?
kc = 219
e = $.Event 'keydown', { which: kc }
$(myCodeMirror.getInputField()).trigger e
不工作。沒有事件被解僱。
cmIF = $(myCodeMirror.getInputField())
textArea = $('<textarea></textArea>')
$('body').append textArea
textArea.keydown (e) ->
cmIF.focus()
return
kc = 219
e = $.Event 'keydown', { which: kc }
textArea.trigger e
嘗試從其他文本區域轉發事件。不起作用。 CM不會觸發事件。
$(myCodeMirror.getWrapperElement()).children().each (index) ->
$(this).trigger e
return
試圖觸發CMs包裝的每個孩子的事件。不起作用。沒有CM事件被解僱。
我在這裏做錯了什麼?如何在CodeMirror實例上觸發鍵盤事件?
你在正確的軌道上,但是我想火任何按鍵事件,而不僅僅是快捷鍵。例如,當我輸入任何字母或數字時CodeMirror觸發一個'onkeydown'事件。我想要觸發這些事件,而無需手動輸入字符。換句話說,我想在CodeMirror上使用JQuery的'$ .Event('keydown',{which:aKeyCode})'函數。 – zakdances
我不想聽這個事件,我想**觸發事件。看看[這個其他SO問題](http://stackoverflow.com/questions/832059/definitive-way-to-trigger-keypress-events-with-jquery)和[JQuery觸發器文檔](http:// api .jquery.com/trigger /)以供參考。 – zakdances
您可以在啓動後向cm實例添加事件偵聽器,如下所示:Initiate:var cm = CodeMirror(target,{value:value});'然後偵聽:'cm.on('keydown',function cm,e){alert(e.keyCode);});'。對不起,我現在看到你的請求**觸發器**。 –