内部keyup函数执行多次,而我只希望它为每个击键执行一次。内部加长键仅在长度大于3且每次击键一次时才起作用。 这是代码
<!doctype html>
<html>
<head>
<title>Adder function using JQuery</title>
<meta charset="utf-8" />
</head>
<body>
<main>
<input type = 'text' class="parent"/>
</main>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function()
{
var parent = 0, child = 0;
'use strict';
$('.parent').keyup(function()
{
console.log("parent part is executed\t" + ++parent + " times");
if($('.parent').val().length >3)
$('.parent').keyup(function()
{
console.log("now inside another keyup function\t" + ++child + " times");
})
})
});
</script>
</body>
</html>
有人可以告诉我为什么会发生这种情况吗?
答案 0 :(得分:0)
if($('.parent').val().length >3)
$('.parent').keyup(function()
{
console.log("now inside another keyup function\t" + ++child + " times");
})
使用以下代码删除if循环条件,以便当parent值大于3时您的if循环起作用
if(parent >3)
$('.parent').keyup(function()
{
console.log("now inside another keyup function\t" + ++child + " times");
})