我是网络开发的新手,我使用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!" - 但我希望每次聚焦另一个输入字段时都会触发事件。我的错是什么?
感谢您的期待!
答案 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")