jQuery - 当另一个输入字段被聚焦时更改段落

时间:2016-09-28 13:30:31

标签: jquery html

我是网络开发的新手,我使用jQuery遇到了问题。我无法在Google上找到任何内容。这是我的问题:

我想更改一个段落,如果另一个输入字段被聚焦,则必须更改。

这是一个代码段:

$(document).ready(function() {
  function() {
    if ($('#input1').focus()) {
     $('#paragraph').html("You picked input1!");
    }

    else if ($('#input1').focus()) {
     $('#paragraph').html("You picked input2!");
    }

    else {
     $('#paragraph').html("You picked a different input!");
    }
  }
});

代码工作一次,段落说"你选择了input1!" - 但我希望每次聚焦另一个输入字段时都会触发事件。我的错是什么?

感谢您的期待!

1 个答案:

答案 0 :(得分:1)

您应该绑定到输入的焦点事件。此外,正如其中一条评论所述,您在两个条件中都使用"#input1"

$(document).ready(function() {
    // Assumption is that all #input{number} are input elements
    $("body").on("focus", "input", funcion() {
        var $this = $(this);
        $("#paragraph").text("You focused " + $this.attr("id"));
    });
});

使用$("body").on("focus", "input", function() {})的好处是,如果在body标记内创建了任何新的输入标记,则该事件仍会影响它们。

我还想提一下,调用$.focus()触发焦点事件,而不是实际检查 标记是否已集中。为此,您应该使用$.is(":focus"),因此在您的代码中它将是$("#input1").is(":focus")