Javascript 带有对象引用选择器的jQuery父对象()

Javascript 带有对象引用选择器的jQuery父对象(),javascript,jquery,scroll,parents,Javascript,Jquery,Scroll,Parents,我试图检测目标元素是作为对象引用的子元素还是同一元素 我使用以下逻辑: $("html").on("mousewheel.scroll DOMMouseScroll.scroll",function(e){ e.preventDefault(); var $scrollableElement = $(".foo").eq(0); var $target = $(e.target); if ($target == $scrollableElement ||

我试图检测目标元素是作为对象引用的子元素还是同一元素

我使用以下逻辑:

$("html").on("mousewheel.scroll DOMMouseScroll.scroll",function(e){
   e.preventDefault();

   var $scrollableElement = $(".foo").eq(0);
   var $target = $(e.target);

   if ($target == $scrollableElement
       || $target.parents($scrollableElement).length) {                
        alert("scroll");                    
   }

});  
但是,即使在既不是
.foo
也不是
.foo
的子元素的元素上滚动,也会发出“滚动”警报

在我的JSFIDLE示例中,滚动
.bar
元素,仍然会提示“滚动”:

为什么会这样?是否可以使用jQuery对象引用作为
.parents()
的选择器?

尝试而不是

演示:

如果您了解了的语法,它不会将jQuery对象作为参数。唯一允许的语法是
.parents([selector])


As@A.Wolff询问为什么不将事件绑定到
.foo


演示:

为什么要将事件绑定到html而不是
.foo
?@A.Wolff我希望阻止滚动,除非在
.foo
的子对象上
$(function () {

    var $scrollableElement = $(".foo").eq(0);
    $("html").on("mousewheel.scroll DOMMouseScroll.scroll", function (e) {
        e.preventDefault();

        var $target = $(e.target);

        if ($target.closest($scrollableElement).length) {
            console.log("scroll");
        }

    });

});