2011-01-26 100 views
0

我正在学习JS,现在有一本js书。 翻转效果的例子让我很开心,所以我需要一些帮助。javascript翻转效果问题

我上传Flickr.com上的快照。 url是:http://www.flickr.com/photos/[email protected]/5389380030/

快照的左侧是页面,快照的右侧是javascript代码。 我的问题是我可以将红色框中的内容更改为绿色框中的代码。 如果可以的话,作者为什么会打扰添加这条线“thisLink.imgToChange = thisImage”? “thisLink.imgToChange”“thisImage”之间的关系是什么? 它们是相同的还是相同的? 有人能为我解释吗? 非常感谢。

+1

此问题中的代码取自* JavaScript和Ajax for Web,Visual QuickStart Guide,第7版*。我是这本书的主要作者。由于代码在本书中被逐行地清楚地解释,所以我得出结论,你是一个要求其他人为你做作业的学生。这在学术上是懒惰的,充其量,至少不是很酷。 – Negrino 2011-03-08 08:58:45

回答

0

thisImage是对图像对象的引用。它被作为变量传递给函数。

图像对象具有像源(.src),.width等属性。高度等。

thisLink也是一个对象,它也可以有适当的。因此,thisLink.imgToChange = thisImage将“imgToChange”设置为馈送到该函数的图像。 imgToChange是程序员选择的完全任意属性。它被用来储存稍后使用的一些数据。

所有这些代码演示了翻转过程的“难题”。必须一遍又一遍地输入(或者甚至使用)“document.getElementById”,所有这些都是一个痛苦。大部分时间我们依靠脚本来自动化这些事情。

框架,它基本上是你在这里工作的代码类型的优化版本,是为了照顾肮脏的工作而开发的。到目前为止,最流行的框架是jQuery

使用jQuery做相同的事情可以在一行代码中完成。

another posting为例。

+0

红色框中的代码与绿色框中的代码有什么区别?它是否以任何方式工作?哪一个更好,为什么?再次感谢。 – jsnewman 2011-01-26 08:11:31

+0

看起来和我一样。 – 2011-01-26 13:03:18

0

简短的回答:

.imgToChangethisImg指的是同一个地方。 .imgToChange作为属性添加,因此稍后可以轻松使用,例如onmouseout函数。

UPDATE

关于您的评论:这是行不通的两种方式(可能)。

由于setupRollover()被称为多次,变量thisImage将在每次调用时指向一个不同的图像节点。绿色框中的代码仅适用于最新的thisImage

红色方块使用this,因为这意味着“发射事件的对象”。红色框设置每个对象以引用适当的图像。然后,当this被掩盖,正确的图像被改变。

亲身体验一下,看起来比解释更容易。

0

鉴于这是直出的JavaScript &阿贾克斯为Web:视觉快速入门指南,第7版 ,尤其是你在网页上的(行由行)解释遇到的麻烦96-97?

由我合写,顺便说一句。