首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >通过单击按钮将注意力集中在下一个元素上

通过单击按钮将注意力集中在下一个元素上
EN

Stack Overflow用户
提问于 2015-09-05 14:44:25
回答 2查看 2.3K关注 0票数 1

当按钮触发mouseup事件时,我的目的是将焦点移到下一个输入元素,下面是脚本:

代码语言:javascript
运行
复制
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元素:

代码语言:javascript
运行
复制
    <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

我的问题是焦点永远不会设定下一个,我如何解决这个问题?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-05 15:03:01

工作小提琴

下一次():立即获取匹配元素集中的每个元素的同级。如果提供了选择器,则只有当与选择器匹配时,才会检索下一个同级。

您没有“立即跟踪”类inp,因此您必须使用td函数一次移动到父td,然后使用next()函数移动到下一个td,然后在这个td中查找类inp并执行焦点。

只是替换:

代码语言:javascript
运行
复制
focused.next(".inp").focus();

By :

代码语言:javascript
运行
复制
focused.parent().next().find(".inp").focus();

完整JS :

代码语言:javascript
运行
复制
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();
        }       
    });
});

希望这能有所帮助。

票数 2
EN

Stack Overflow用户

发布于 2015-09-05 14:59:34

试着把重点放在下一个元素上

代码语言:javascript
运行
复制
 $(this).trigger("keydown", [9]);

替换代码中的下列内容

代码语言:javascript
运行
复制
   if (focused && focused.length) {
        focused.next(".inp").focus();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32414347

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档