为什么这个不起作用?
我有一系列事件,其中<body onload=""> ===triggers==> my autoload() function ===should trigger===> $(document).ready ===should trigger==> console.log(' FOCUS/BLUR EVENT ');
现在,我下面的autoLoad()函数明显地被触发了,因为它将输入的背景颜色变为红色,但是控制台中没有记录“焦点事件”或“模糊事件”消息。有了4个<inputs>标签,我想我会得到4个“焦点事件”和4个“模糊事件”消息。
<html>
<head>
<script src="../../js/jquery-3.1.1.min.js"></script>
<script>
function consoleLogger1() {
console.log(' FOCUS EVENT ');
}
function consoleLogger2() {
console.log(' BLUR EVENT ');
}
$(document).ready(function(){ //EVENT LISTENER
$("form input").on("focus", consoleLogger1);
$("form input").on("blur", consoleLogger2);
});
function autoLoad() {
$("form input").each(function() {
$(this).css('background-color', 'red'); //WORKS!
$(this).focus();
/*Should trigger the event-listener above
to trigger consoleLogger1 above, but doesn't.*/
$(this).blur();
/*Should trigger the event-listener above
to trigger consoleLogger2 above, but doesn't.*/
});
}
</script>
</head>
<!--MMMMMMMMMMMMMMMMMMMMMMMMMMMMMM---DIVIDER---MMMMMMMMMMMMMMMMMMMMMMMMMMM-->
<body onload="autoLoad()">
<form>
<input style="width: 136px;"></input><br>
<input style="width: 136px;"></input><br>
<input style="width: 136px;"></input><br>
<input style="width: 136px;"></input><br>
</form>
</body>
</html>发布于 2017-03-14 03:59:07
我不知道为什么它不起作用,但一个成功的变通方法是删除两个事件侦听器行...
$("form input").on("focus", consoleLogger1);
$("form input").on("blur", consoleLogger2); 对$(document).ready函数执行...from操作,并将它们作为第一件事插入到实际的autoLoader()函数中。
https://stackoverflow.com/questions/42771516
复制相似问题