我一直试图通过编写一个简短的脚本来理解jQuery委派,但我遇到了两个问题。
<!DOCTYPE html>
<html>
<head>
<script src="jquery.min.js"></script>
</head>
<body>
<input type="text" id="text" />
<div id="msg"></div>
<script>
function showMsg() {
if ($("#text").val() === "") {
$("#msg").html("Your input is empty");
} else {
$("#msg").html("You have entered something")
}
}
$("#text").on("blur", showMsg());
</script>
</body>
1)。此事件委派无法按预期工作,消息"Your input is empty"
始终无限期地显示。如何解决这个问题?
2)。在showMsg()
函数中,我必须明确使用$("#text")
才能使脚本正常工作,如果我使用$(this)
它将无法正常工作。如果我有很多需要使用此函数的输入字段,是否可以统一定义函数,以便这些输入字段可以使用它而不必更改函数中的任何内容,该怎么办?
答案 0 :(得分:2)
您需要做的就是改变
$("#text").on("blur", showMsg());
到
$("#text").on("blur", showMsg);
这也可以解决您的$(this)
问题。您现在可以将其设置回来。