2011-01-26 96 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?

由我合寫,順便說一句。