此代码存在轻微问题:
jQuery.fn.markCursor = function(e){
$(this).focus();
$(this).keyup(function(e) {
$cursorStart.enterText(e);
});
};
jQuery.fn.enterText = function(e){
if (e.keyCode == 9){
$cursor.val("");
alert("hello");
}
};
tab键是在浏览器中使用它的默认行为,在这里.preventdefault有帮助吗?我如何添加12个空格而代码在jquery中占用12行:p
答案 0 :(得分:4)
e.preventDefault()
会有所帮助。如果您想要添加twelfe空格而不是字面输入,请使用Array(12).join(" ");
。当然,输入twelfe空格可能更容易。
键入twelfe空格的一些方法:
var s=[];s.length=12;s.join(" ");
var s=Array(12).join(" ");
var s=" "; //Shortest so far.
正如您所看到的,当Array(i).join(" ")
高于17时,使用i
开始有用。请注意,此方法启用了动态缩进功能。
修改强>
关键事件的快速tuturial:
keydown
- 按下按下键时启动。在发生任何默认事件之前,此事件将被触发 keypress
- 在默认事件发生之前按下该键时,会触发此事件(多次)。keyup
- 在释放键后触发(每次关键事件只发生一次)。毋庸置疑,所有默认事件都已发生。 keydown
和keypress
可用于捕获和取消关键事件。如果要捕获并验证所有关键事件,请使用keypress
。如果您已分配了多个事件(例如,分配到window
和input
),您也可以将e.stopPropagation()
与e.preventDefault()
结合使用。第一个函数阻止事件进一步冒泡(=事件不再传递给其他事件侦听器)。第二个函数可以防止出现默认行为。
答案 1 :(得分:3)
要捕获tab键,您必须绑定到keydown
事件。按Tab键时,不会触发keyup
事件。
答案 2 :(得分:1)
我对Jquery的过度使用感到厌烦。如果查看preventDefault函数,它所做的就是更改window.event的返回值。
function stopTab(e){
e=e||window.event;
if(e.keyCode==9){
document.querySelector('textarea').value+=' ';
e.returnValue= false;
}
}
你必须通过找到光标的位置来解决附加空间问题。