Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我是否应该使用;这";或;事件.目标“;用javascript?_Javascript_Events_This_Target - Fatal编程技术网

我是否应该使用;这";或;事件.目标“;用javascript?

我是否应该使用;这";或;事件.目标“;用javascript?,javascript,events,this,target,Javascript,Events,This,Target,我在下面创建了一个简单的div演示,单击后将不显示任何内容 <div id="three" onclick="toggle2(event);return false;" style="background:#303; color:#FFF;"> function toggle2(e) { var textx = (e.target) ? e.target : e.srcElement; textx.style.display = "none"; cons

我在下面创建了一个简单的div演示,单击后将不显示任何内容

<div id="three" onclick="toggle2(event);return false;" style="background:#303; color:#FFF;">

function toggle2(e) {

    var textx = (e.target) ? e.target : e.srcElement;
    textx.style.display = "none";

    console.log(e.target);
} 

功能切换2(e){
var textx=(e.target)?e.target:e.src元素;
textx.style.display=“无”;
console.log(如target);
} 
我的问题是,如果我替换

<div id="three" onclick="toggle2(event);return false;" style="background:#303; color:#FFF;">



在我上面的例子中,这两种方法都很好….

我认为没有必要在onclick事件上传递
这个
作为参数,您可以直接使用
这个
函数。

当“e”是类似于点击传递参数的事件时,您通常使用e.target

当您将其作为参数传递时,这是对包含javascript方法的DOM节点的引用。这里,“这个”指的是div

由于您的div上有一个click事件,当您单击它时,它被视为一个事件,这就是为什么this和e.target都可以工作的原因


此外,“this”总是指您的div,而“e.target”则指您在div中单击的元素。

很可能它们完全相同。这取决于HTML。在这种情况下,
this
将始终是
div
元素<代码>此
指捕获事件的元素<代码>事件。但是,目标
指向事件发生的元素

如果元素没有子元素,它们将始终相同。但是,如果您有以下情况:

<div id="three" onclick="toggle2(event);return false;" style="background:#303; color:#FFF;">
    <span>Line 1</span>
    Line 2
</div>

第1行
第2行
那么他们可能会有所不同。单击
第1行将导致
事件。target
成为
span
元素,因此只有该元素将被隐藏


除非您特别想指向事件发生的元素,否则使用
this

更直观事件指的是当前正在触发的事件。现在在浏览器中,事件从触发事件的元素冒泡到其父元素,直到到达文档根。更多信息,请访问:


在您的示例中,事件指向单击事件和事件。目标div指的是div本身。如果将子元素添加到div并单击该元素,则事件.target将指向该子元素,仍将引用div

此引用函数的所有者。有时这是另一段代码,但也可能是一个对象。但是如果您正在编写一个事件处理函数,那么您最好避免这样做?因为在IE中,它指的是事件处理框架对象,我猜…:)
<div id="three" onclick="toggle2(event);return false;" style="background:#303; color:#FFF;">
    <span>Line 1</span>
    Line 2
</div>