Javascript TAB按键捕捉不工作

Javascript TAB按键捕捉不工作,javascript,jquery,Javascript,Jquery,嗨,我写了这个JS脚本来捕获一个TAB键的捕获。 它捕获并在“pre”标记的当前指针位置插入\t $m=jQuery.noConflict(); $m(文档).keydown(函数(事件){ var keyCode=event.which; 如果(keyCode==9){ //alert();如果存在此代码,则代码有效,但如果我删除此代码,则代码不起作用,我不希望每次用户点击选项卡时都向他发出警告 //获取插入符号位置/选择 var start=this.selectionStart; var

嗨,我写了这个JS脚本来捕获一个TAB键的捕获。 它捕获并在“pre”标记的当前指针位置插入\t

$m=jQuery.noConflict();
$m(文档).keydown(函数(事件){
var keyCode=event.which;
如果(keyCode==9){
//alert();如果存在此代码,则代码有效,但如果我删除此代码,则代码不起作用,我不希望每次用户点击选项卡时都向他发出警告
//获取插入符号位置/选择
var start=this.selectionStart;
var end=this.selectionEnd;
var$this=$m(this);
var value=$this.val();
//将textarea值设置为:插入符号前的文本+制表符+插入符号后的文本
$this.val(value.substring(0,开始)
+“\t”
+值。子字符串(结束));
//再次将插入符号置于正确位置(为选项卡添加一个)
this.selectionStart=this.selectionEnd=start+1;
//防止焦点丢失
event.preventDefault();
}
});

但我的问题是,当我在脚本中插入警报时,它可以完美地工作并插入\t,但当我删除警报时,它就不工作了。这里还有一个焦点事件,但按TAB键后焦点会丢失。

您需要在
事件上调用
preventDefault()
,而不是在

上调用事件.preventDefault();而不是这个。preventDefault()@设计它的作品!!现在是基本问题。它只在我发出警报时才起作用。你能通过编辑event.preventDefault()来更改你的问题吗;?因此,只有基本问题仍然可见。使用jQuery时,不需要
event.keyCode | | event.which
。只需使用,jQuery就可以为您规范化它。@RocketHazmat是的,但即使这样做也不能解决问题。。就像我发出了警报一样,这一切都很好。。任何想法都有效!!现在是基本问题。它只有在我发出警报时才起作用。
$m = jQuery.noConflict();
    $m(document).keydown(function(event) {

    var keyCode = event.which;
      if(keyCode == 9) { 
           // alert(); if this is there the code works, but if i remove this the code doesn't work, i dont want to alert user every time he hits TAB

        // get caret position/selection
            var start = this.selectionStart;
            var end = this.selectionEnd;

            var $this = $m(this);
            var value = $this.val();

            // set textarea value to: text before caret + tab + text after caret
            $this.val(value.substring(0, start)
                    + "\t"
                    + value.substring(end));

            // put caret at right position again (add one for the tab)
            this.selectionStart = this.selectionEnd = start + 1;

            // prevent the focus lose
            event.preventDefault();
      }
    });

<div class="masterContainer" onclick="setFocusDiv();">
            <div class="lined"></div>
            <pre id="inputId" class="nonlined" contenteditable="true" onkeyup="setLineNu();" onfocus="setLineNu();"></pre>
        </div>