我在点击输入按钮时尝试调用函数scheduleAdd,但是我只希望它在id为" addSchedule'的输入时工作。是焦点。这就是我所拥有的:
$('#addSchedule').focus(function(e) {
var evt = e || window.event;
if(evt.keyCode == 13) {scheduleAdd};
});
我知道.focus中的代码可以正常工作,因为我自己尝试了它,并在命中回车键时触发函数scheduleAdd。我怎样才能以“addSchedule'成为焦点?
另外,更一般地说,我想知道是否有标准的方法来根据第二个事件(例如嵌套.on()或其他事件)来归因事件处理程序。
感谢。
答案 0 :(得分:2)
只是keydown
事件,并根据当前元素是否具有指定的id决定做某事或什么都不做:
$(document).on("keydown", function() {
if (!$("#addSchedule").is(":focus")) return;
// do stuff
});
或者,如果您不介意jQuery不够,也可以使用document.activeElement.id === "addSchedule"
检查焦点元素的标识。 ; - )
答案 1 :(得分:2)
HTML:
<form>
<input id="addSchedule" type="text" />
</form>
使用Javascript:
$('#addSchedule').keydown(function (event) {
if (event.which == 13) {
event.preventDefault(); // This will prevent the page refresh.
scheduleAdd();
}
function scheduleAdd() {
alert("Add the schedule");
}
});