在包含div的(id =“center”)标签后,无法在textarea内输入?
这是代码......
<div id="north">North</div>
<div id="west">West</div>
<div id="center"><textarea></textarea></div>
脚本
$(document).ready(function() {
var divs = ["north", "west", "center"];
var startIndex = 0;
$(document).keydown(function(e) {
if (e.which == 9) {
$("div").css("border", "");
$("#" + divs[startIndex]).css("border", "4px solid gray");
startIndex++;
if (startIndex === divs.length) {
startIndex = 0;
}
}
return false;
});
});
答案 0 :(得分:1)
你在keydown上返回false - 这会阻止你在textarea中输入
$(document).keydown(function(e) {
if (e.which == 9) {
$("div").css("border", "");
$("#" + divs[startIndex]).css("border", "4px solid gray");
startIndex++;
if (startIndex === divs.length) {
startIndex = 0;
}
}
return false; // <--
});
如果要阻止默认选项卡行为,则应将其移至if (e.which == 9)
语句
$(document).keydown(function(e) {
if (e.which == 9) {
$("div").css("border", "");
$("#" + divs[startIndex]).css("border", "4px solid gray");
startIndex++;
if (startIndex === divs.length) {
startIndex = 0;
}
return false; // <-- Move it here to prevent tab default behavior
}
});
如果你不需要阻止keydown上的任何默认行为,你可以完全删除它
答案 1 :(得分:0)
您可以使用.preventDefault()
方法停止默认活动。
$(document).ready(function() {
var divs = ["north", "west", "center"];
var startIndex = 0;
$(document).keydown(function(e) {
if (e.which == 9) {
e.preventDefault()
$("div").css("border", "");
$("#" + divs[startIndex]).css("border", "4px solid gray");
startIndex++;
if (startIndex === divs.length) {
startIndex = 0;
}
}
});
});