Javascript JQuery—为什么event.target不';在这种情况下你不能工作吗?

Javascript JQuery—为什么event.target不';在这种情况下你不能工作吗?,javascript,jquery,Javascript,Jquery,我只是想知道为什么当我在容器中单击时,会弹出警报,尽管if语句允许它在单击时不显示 还有,我该如何测试里面的孩子 $(窗口)。在(“单击”)上,函数(事件){ var container=$(“#container”); if((event.target)!==容器){ 警报(“点击外部”); } }); 正文{ 高度:600px; } #容器{ 填充:2rem; 背景:灰色; } 您应该使用 你应该使用 使用函数将事件目标与JQuery元素进行比较: $(窗口)。在(“单击”)上,函数

我只是想知道为什么当我在容器中单击时,会弹出警报,尽管if语句允许它在单击时不显示

还有,我该如何测试里面的孩子

$(窗口)。在(“单击”)上,函数(事件){
var container=$(“#container”);
if((event.target)!==容器){
警报(“点击外部”);
}
});
正文{
高度:600px;
}
#容器{
填充:2rem;
背景:灰色;
}

您应该使用

你应该使用

使用函数将事件目标与JQuery元素进行比较:

$(窗口)。在(“单击”)上,函数(事件){
var container=$(“#container”);
if($(event.target).is(容器)){
警报(“点击外部”);
}
});
正文{
高度:600px;
}
#容器{
填充:2rem;
背景:灰色;
}

使用该函数将事件目标与JQuery元素进行比较:

$(窗口)。在(“单击”)上,函数(事件){
var container=$(“#container”);
if($(event.target).is(容器)){
警报(“点击外部”);
}
});
正文{
高度:600px;
}
#容器{
填充:2rem;
背景:灰色;
}

比较
id
。这里的
$(“#容器”)
是一个jquery对象

$(窗口)。在(“单击”)上,函数(事件){
if((event.target.id)!='container'){
警报(“点击外部”);
}
});
正文{
高度:600px;
}
#容器{
填充:2rem;
背景:灰色;
}

比较
id
。这里的
$(“#容器”)
是一个jquery对象

$(窗口)。在(“单击”)上,函数(事件){
if((event.target.id)!='container'){
警报(“点击外部”);
}
});
正文{
高度:600px;
}
#容器{
填充:2rem;
背景:灰色;
}

您正在将DOM元素与永远不匹配的jQuery对象进行比较。在目标之外创建一个jQuery对象,并检查它是否是
#container
的后代。如果在
#container
下有子元素,这也适用

$(window).on("click", function(event) {
  if ($(event.target).closest('#container').length == 0){
    alert("clicked outside");
  }
});

您正在将DOM元素与永远不匹配的jQuery对象进行比较。在目标之外创建一个jQuery对象,并检查它是否是
#container
的后代。如果在
#container
下有子元素,这也适用

$(window).on("click", function(event) {
  if ($(event.target).closest('#container').length == 0){
    alert("clicked outside");
  }
});
试试这个:

$(window).on("click", function(event) {
var container = $("#container");
if ((event.target) !== container[0]) {
    alert("clicked outside");
}});
试试这个:

$(window).on("click", function(event) {
var container = $("#container");
if ((event.target) !== container[0]) {
    alert("clicked outside");
}});

因为您在这里将DOM元素引用(event.target)与jQuery对象进行比较。因为您在这里将DOM元素引用(event.target)与jQuery对象进行比较。检查子元素是否在其中如何?这是JQuery改变了的吗?为什么我的例子不起作用?cheers可通过
.children()
函数访问目标元素子元素。您的示例不起作用,因为您将JQuery对象与DOM元素进行了比较。检查子对象是否在其中如何?这是JQuery改变了的吗?为什么我的例子不起作用?cheers可通过
.children()
函数访问目标元素子元素。您的示例不起作用,因为您将JQuery对象与DOM元素进行了比较。