TIPS-依條件決定要呼叫的Javascript函數

jQuery裡提供了show()及hide()用來顯示或隱藏元素,另外有toggle()可以用在顯示與隱藏間來回切換,但是我很常用的一個情境是要依據某個條件來決定顯示與否,由於show()、hide()分了兩個函數,而toggle()又是依原來的狀態決定要改成隱藏或顯示,逼得我只好寫成:

//方法1
if (someCondition)
    $("#someDiv").show();
else
    $("#someDiv").hide();
//方法2
$("#someDiv").css("display",
    someCondition ? "block" : "none");

方法1看來太囉嗦累贅,方法2放著現有函數不用,我都覺得不太理想,我老覺得要多個display(true/false)會比較好用。

連續寫了幾次後,心想有這困擾的應不只我一人,或許早有解決方案。終於忍不住去找看看是否我漏了什麼好用的函數,結果發現有人也提出了應加上條件化顯示函數的建議。下一版本的jQuery會不會加入這類函數不可而知,但我學到一個聰明的動態式函數呼叫寫法:

$("#someDiv")[someCondition ? "show" : "hide"]();

Javascript語言的彈性,真叫人嘆為觀止!

歡迎推文分享:
Published 17 December 2008 12:00 AM 由 Jeffrey
Filed under: , ,
Views: 10,841



意見

沒有意見

你的看法呢?

(必要的) 
(必要的) 
(選擇性的)
(必要的) 
(提醒: 因快取機制,您的留言幾分鐘後才會顯示在網站,請耐心稍候)

5 + 3 =

搜尋

Go

<December 2008>
SunMonTueWedThuFriSat
30123456
78910111213
14151617181920
21222324252627
28293031123
45678910
 
RSS
創用 CC 授權條款
【廣告】
twMVC

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication