用DIV+Javascript實現標簽功能
現在很多網站都用到了標簽的切換功能,新浪、迅雷等網站都有,應該說用很很泛濫了。其實
標簽功能是Windows程序中的一種功能,在Delphi或VB等Windows程序開的環境中,很容易就能創建各種漂亮而又功能強大的標簽功能,但在
Web開發中,就沒有這種便利了。
只需要銷加改動,標簽的數量可以自由添加,而無需要為標簽添加ID,實際上這個功能除了用到Div、Javascript之后,很重要的是要用到CSS樣式。
?

?
圖1
首先我們要確定我們要做什么,我們要做成一個帶三個標簽的區域(圖1),點擊標簽標簽列表的其中一個標簽,內容區域會根據當前點擊的標簽顯示不同的內 容。按照我們一般的做法是每一個標簽對應一個內容區域,給每個內容區域增加一個id屬性,然后為每一個標簽添加一個屬性,就像這樣:
????
你可能沒有意識到這種辦法會有什么問題,當一個頁面有非常多的標簽塊的話,我們將不得不面臨一個問題,那就是id的命名問題,我們將要為每一個內容區域命
名,這樣不僅增加了代碼量,也增加了javascript編寫的難度,我們不可能為每一個標簽塊寫一堆javascript,就算我將
javascript寫成一個函數或者一個類,我們也會而臨另一個問題,就是調用的時候會有一大堆的參數,因為你需要將這個id傳送過去。并且,很容易因
為人為的疏忽造成錯誤。
下面,來看看我是如何實現這個功能的吧,可能不是最好的方法,如果你有更好的方法,希望你能告訴我,讓我們一起進步。
???? 首先,我們要做的是寫好基本的html代碼,代碼如下:
????寫好基本html代碼后,我們還需要做一項重要的工作,那就是css樣式,因為li如果沒有css樣式控制,標簽就會以列表的形式出現,基本的CSS樣式代碼如下:
?
下面,我們將要進行最重要的一環了,就是javascript,看到你里,你可能會問,為什么標簽li元素沒有事件呢?如何實現標簽的切換呢,這是因為
我考慮了另一個問題,如果我們需要為每一個標簽添加一個事件的話,確實是一件很麻煩的事情,而且當標簽塊多了的時候,就會增加代碼量,所以我考慮使用動態
添加屬性的方式為每一個標簽添加屬性。
?
然后,我們在html頁的最后面,調用LabelAddEvent這個函數,即可以為所有標簽添加函數了,是不是很簡潔,當我們有很多標簽塊的時候,就不必要為每個標簽塊添加事件了,下面我們來看看ChangeLabel這個函數:
?
?
主要代碼就是這么多了,是不是很簡潔呢?當有很多個標簽塊的候,你就會發現這個方法的優勢了,事實下,我們還可以簡單修改一下javascript代 碼,實現多個標簽塊在一個頁面中的功能,接下來我準備結合Xml及Xslt寫一個根據xml配置的多標簽塊的教程,如果你覺得有什么更好的方法可以實現, 請你與我聯系,讓我們共同進步。
??
??版權所有?Conis,復制或者轉載請保留此信息,任何人未經許可,不得擅自將本文發布作為商業用途。
??更多內容更多精彩請您訪問http://www.conis.cn
??更多內容更多精彩請您訪問http://www.conis.cn
posted on 2007-08-28 12:47 藍色幽默 閱讀(911) 評論(1) 編輯 收藏 所屬分類: 網頁設計