Javascript, target.id and event.srcElement.id



我试图理解javascript代码的一部分是指代码是:链接,现在又有两个css文件,第一个包含(sansStyle.css):

body, p, td, ol, ul, select, span, div, input {
    font: .9em/1.1em verdana, geneva, arial, helvetica, sans-serif;
}

第二个包含(serifStyle.css):

  body, p, td, ol, ul, select, span, div, input {
        font: 1.1em/1.2em Times New Roman, Times, serif;
    }

我的问题只是javascript代码中我不理解的一小部分,如果你看一下链接,在javascript部分是:

if (inVal) {
        if (typeof inVal == "string") {
            title = inVal;
        }
        else {
            title = inVal.target.id;
        }
    }
    else {
        title = window.event.srcElement.id;
    }

现在我明白了,我们在else引用id,因为它的值与我们需要的title值相同,但问题是,如果它不是字符串,那它是什么?例如,它是如何在Val.target.id中得到什么是inVal.target?,关于窗口事件.srcElement.id是什么事件?如果有人能帮助我理解第二个,我将非常感激。

inVal是点击事件,目标是发生该事件的DOM元素。如果你看这行:

allButtons[i].onclick = setActiveStylesheet;

您将看到,当单击按钮时,该函数被调用,并且事件作为参数传递给该函数。

inVal可以是两件事——它可以是字符串,也可以是点击事件。

1.)inVal可以是一个字符串,当它获得标题时(这是我假设的风格)参见这行setActiveStylesheet(title)

如果仔细观察,标题将始终是来自cookie var thisCookie = cookieVal("style");getActiveStylesheet()函数的字符串

2.)inVal可能是一个点击事件,正如Haynar指出的那样,它看起来像

allButtons[i].onclick = setActiveStylesheet;

因此,您检查它是否是字符串

    if (typeof inVal == "string") {
        title = inVal; // when it comes form the cookie or getActiveStylesheet()
    }
    else {
        title = inVal.target.id; // it is an event
    }

window.event是事件属性。例如window.event.type将为您提供所发生事件的类型。与window.event.srcElementwindows.event.target类似,这两个属性都返回事件发生的HTML元素。window.event.sercElement.id将返回事件的id。

最新更新