当按钮触发mouseup事件时,我的目的是将焦点移到下一个输入元素,下面是脚本:
var cleared = false;
$(document).ready(function(){
//focus on first element
var focused = null;
$(".inp").focus(function () {
focused = $(this);
}).first().focus();
//when mousedown, set value 4
$("#btn").mousedown(function(e) {
focused.val("4");
}).mouseup(function(e) {
//when mouseup, change bg color
focused.css("background-color","yellow");
//and focus on next element
if (focused && focused.length) {
focused.next(".inp").focus();
}
});
});下面是我的html元素:
<table>
<tr>
<td>ABC</td>
<td><input class="inp"/></td>
<td><input class="inp"/></td>
<td><input class="inp"/></td>
</tr>
</table>
<button id="btn">4</button>Good我的问题是焦点永远不会设定下一个,我如何解决这个问题?
发布于 2015-09-05 15:03:01
下一次():立即获取匹配元素集中的每个元素的同级。如果提供了选择器,则只有当与选择器匹配时,才会检索下一个同级。
您没有“立即跟踪”类inp,因此您必须使用td函数一次移动到父td,然后使用next()函数移动到下一个td,然后在这个td中查找类inp并执行焦点。
只是替换:
focused.next(".inp").focus();By :
focused.parent().next().find(".inp").focus();完整JS :
var cleared = false;
$(document).ready(function(){
//focus on first element
var focused = null;
$(".inp").focus(function () {
focused = $(this);
}).first().focus();
//when mousedown, set value 4
$("#btn").mousedown(function(e) {
focused.val("4");
}).mouseup(function(e) {
//when mouseup, change bg color
focused.css("background-color","yellow");
//and focus on next element
if (focused && focused.length) {
focused.parent().next().find(".inp").focus();
}
});
});希望这能有所帮助。
https://stackoverflow.com/questions/32414347
复制相似问题