gpt4 book ai didi

: (e && e. 目标的 JavaScript 代码说明) || (window.event && window.event.srcElement)

转载 作者:行者123 更新时间:2023-12-02 18:49:23 27 4
gpt4 key购买 nike

我已经制作了一个简单 HTML 页面的 JavaScript 选项卡 View 。我通过节点使用 JavaScript 为 header 标签添加了 onClick 函数。onClick 函数执行一个名为 showTab 的函数,将 this 作为参数传递。我知道这个[对象窗口]

header标签onClick函数设置如下:

node.onclick = function() { showTab(this); };

showTab函数如下:

function showTab(e) 
{
var node = (e && e.target) || (window.event && window.event.srcElement);
alert(node.innerHTML);
}

一切正常,当我点击其中一个标题时,会出现一个警报及其innerHTML。

但是,我确实使用了 Google 的一些帮助来实现这一目标。我需要一些帮助来准确理解这一行的含义:

var node = (e && e.target) || (window.event && window.event.srcElement);

我自己做了研究,发现它可以被认为相当于 C# 中的 sender。

但我想彻底了解它是如何工作的,它指的是什么,以及它如何知道哪个节点正在调用 showTab 函数,因为有 3 个 header 标签执行相同的功能,但都没有 id。

最佳答案

啊,处理事件和浏览器的乐趣。

Trident 引擎(Internet Explorer 和其他基于该引擎的浏览器)处理事件的方式与大多数(全部?)其他浏览器不同。

<html>
<head>
<title>Test</title>
</head>

<body>
<button id="test_button">Click me</button>

<script>
// UGLY, UGLY, UGLY... don't really use this
var button = document.getElementById("test_button");
if (window.attachEvent) {
button.attachEvent("onclick", showTab);
} else {
button.addEventListener("click", showTab);
}

function showTab(e)
{

// Most browsers pass the event as 'e'
// Microsoft puts the event in window.event
// Either way, event will now point to the object we want.
var event = e || window.event;


// Once again, the different browsers handle the `target` property differently.
// Target should now point to the right event.
var target = event.target || event.srcElement;

alert(target.innerHTML);
}
</script>
</body>

关于: (e && e. 目标的 JavaScript 代码说明) || (window.event && window.event.srcElement),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15983575/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com