Javascript 为什么jquery中的event.target不工作
下面是代码,我正在尝试放置。这非常简单,但是event.target不会触发,而其他普通事件处理程序可以工作Javascript 为什么jquery中的event.target不工作,javascript,jquery,function,event-handling,Javascript,Jquery,Function,Event Handling,下面是代码,我正在尝试放置。这非常简单,但是event.target不会触发,而其他普通事件处理程序可以工作 $(函数($){ var container=$(“#container”); 函数init(){ 容器。打开('单击',打开) } 函数open(){ if(event.target==容器){ 警报(“hi”); } } init(); })(jQuery) body,html{ 填充:0; 保证金:0; } #容器{ 高度:500px; 宽度:800px; 保证金:0自动;
$(函数($){
var container=$(“#container”);
函数init(){
容器。打开('单击',打开)
}
函数open(){
if(event.target==容器){
警报(“hi”);
}
}
init();
})(jQuery)代码>
body,html{
填充:0;
保证金:0;
}
#容器{
高度:500px;
宽度:800px;
保证金:0自动;
背景色:#444;
}
h1{
颜色:白色;
}
测试
这两个值在javascript中引用的对象引用不相同李>
$(“#容器”)
是一个jQuery对象,要获取HTML DOM对象,需要检索jQuery对象中的第0个元素。而event.Target
返回HTMLDOM元素。您试图做的是比较不同的对象,因此该条件永远不会通过
$(“#container”)
是一个ID选择器,可以返回多个匹配元素(HTML中多个元素的ID相同),因此需要获取Jquery对象返回的第0个元素。Jquery对象是HTML元素的包装器,包括附加属性和方法
从$(函数($){
中删除$
,它基本上是一种IIFE模式
因此,您需要修改代码,如下所述
(函数($){
var container=$(“#container”);
函数init(){
容器。打开('单击',打开)
}
函数open(){
if(event.target==容器[0]){
警报(“hi”);
}
}
init();
})(jQuery);
<代码>正文,html{
填充:0;
保证金:0;
}
#容器{
高度:500px;
宽度:800px;
保证金:0自动;
背景色:#444;
}
h1{
颜色:白色;
}
测试
谢谢它能工作。但我的困惑是容器没有索引元素。那么为什么需要容器[0]索引呢。@jeff,在回答中添加了更多细节。