jQuery测试事件结果是否等于元素?

时间:2017-02-14 23:57:02

标签: javascript jquery

这是我的代码:

$('html').on("click", function (e) {
    if(!$(e).is($element)) {
        hideResults();
    }
});

我尝试了这个,但它不起作用。元素是一个div。我想测试事件结果是否等于元素。

EDIT 这是更新的代码,仍然无法正常工作

$(document).on("click", function (e) {
    if(!$(e.target).is($element)) {
        hideResults();
    }
});

2 个答案:

答案 0 :(得分:2)

您必须检查e.target而不是事件本身。像这样:

$(document).on("click", function (e) {
    if(!$(e.target).is($element)) {
        hideResults();
    }
});

为什么使用"html"document更好!

答案 1 :(得分:0)

由于我只能猜到你想要通过点击事件的结果来完成什么,我只能向你推进正确的方向。

尝试解释给定的代码: 只是为了澄清jQuery方法的用法 on():它将一个事件处理程序附加到一个对象。在这种情况下,对象是一个包装 DOM-Element 的jQuery对象。第一个参数是您想要发生的事件,应该触发事件处理程序方法作为第三个参数,换句话说就是委托,或者在这种情况下是匿名javascript函数。这个函数将从jQuery方法 on()获取传递给它的参数。

重要的部分是你必须知道点击' -event的结果,你可以在这里找到它:https://api.jquery.com/click/

如果方法 .on()的用法不清楚,您可以在此处找到:https://api.jquery.com/on/

我希望我能帮到你!