如何在jQuery事件委托中获取所选元素?

时间:2015-04-17 00:29:14

标签: javascript jquery

我一直试图通过编写一个简短的脚本来理解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)它将无法正常工作。如果我有很多需要使用此函数的输入字段,是否可以统一定义函数,以便这些输入字段可以使用它而不必更改函数中的任何内容,该怎么办?

1 个答案:

答案 0 :(得分:2)

您需要做的就是改变

 $("#text").on("blur", showMsg());

 $("#text").on("blur", showMsg);

这也可以解决您的$(this)问题。您现在可以将其设置回来。