我是web开发的新手,在使用jQuery时遇到了问题。我在谷歌上找不到任何东西。这就是我的问题:
我想要更改一个段落,如果另一个输入域被聚焦,它必须更改。
下面是一个代码片段:
$(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!");
}
}
});代码只运行一次,段落显示"You picked input1!“--但我希望每次我聚焦另一个输入字段时都触发该事件。我的错误是什么?
在期待中感谢你!
发布于 2016-09-28 21:35:07
您应该绑定到输入的焦点事件。此外,正如其中一条注释所述,您在两个条件句中都使用了"#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()会触发focus事件,而不是实际检查标记是否被聚焦。为此,您应该使用$.is(":focus"),因此在您的代码中应该是$("#input1").is(":focus")
https://stackoverflow.com/questions/39749021
复制相似问题