我试图理解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.srcElement或windows.event.target类似,这两个属性都返回事件发生的HTML元素。window.event.sercElement.id将返回事件的id。