Focus first text field using jQuery

Monday, April 14, 2008

When it comes to focus the first text field on a page using jQuery , the usual solution would be:

JavaScript:
  1. $(“:text:visible:enabled:eq(0)”).focus();

This query means to find the first of input text field(s), which is/are visible and enabled. However, this would also extract text field(s) which is/are under a display:none parent(s). So a more complete way would be:

JavaScript:
  1. $(“:text:visible:enabled”).filter(function(){
  2.      return $(this).parents(“:hidden”).size()==0;
  3.  }).slice(0,1).focus();

The filter here would try to determine if the text field is a descendant of a hidden ancestor. The usage of slice(0,1) instead of get(0) is to keep the chainability. A test page is put up here .

Finally, you may wrap it up with a plugin:

JavaScript:
  1. (function($){
  2.     $.fn.focusFirstField = function(){
  3.         $this = this;
  4.         $this.find(“:text:visible:enabled”).filter(function(){
  5.             return $(this).parents(“:hidden”).size() == 0;
  6.         }).slice(0,1).focus();
  7.         return this;
  8.     }
  9. })(jQuery)

So that you can do this:

JavaScript:
  1. $(“#form1,#form2”).focusFirstField(); //form1 or form2 may be ‘hidden’ dynamically

I just wonder if there is any ‘selector-only’ solution for this?

Update: It turns out that the child’s visiblity would override parent’s visibility. So the filter should only check display none:

JavaScript:
  1. $(":text:visible:enabled").filter(function(){
  2.      return $(this).parents.filter(function(){
  3.          return this.style.display == "none"; })
  4.     .size()==0;
  5.  }).slice(0,1).focus();

I’ve updated the demo page .

宏觀人類發展 - 文明之網

Saturday, February 16, 2008

一直以來都覺得自己的歷史很差,選讀理科後更沒有怎樣碰過,可能怕了流於背誦式的學習,一直想惡補一下。有次在書店看到這本 《文明之網:無國界的人類進化史》 ,其介紹說是「外星人來訪必讀」,以宏觀角度看世界的歷史,也許會適合一看?

這本書讀了我好久的時間,間間斷斷地讀了兩個多月,主因可能是看不慣歷史書,當中又有甚多數字與年份參考,讀上去有點教科書的感覺。但這並不代表這本書寫得不好,只是我「體質」比較差而已,消化需時。

正如英文標題所說的 bird-eye view,書的內容鳥瞰全世界,以網絡的角度去看人類文明。書本以時間為章節,描述全世界在同一時段裏,人類的不同連結、發展、整合等等。由遠古的人類游團打獵,然後變成定居耕種的農業社會,到建立都市城邦國家,以至組成大型都會網絡,及至全球。各地交流編織起世界網絡,交換了人口、作物、動物、貨品、文化、技術、細菌、疾病等等。各種不同的發明,如火、歌舞、語言文字、宗教、貨幣、船運、汽車、電訊、互聯網等等,使人類拉得更近,網絡更緊密和廣大。各國無論在政治和經濟,都已經交織在一起,不可能再獨善其身,也不能回頭。

角度夠宏觀,所以看著你可以感到整個世界的氣息,是活生生的。

本書對於人類與環境之間的互動影響著墨不少,例如農業活動對植物品種、土壤、林地的影響,畜牧如何改變了動物和自然界的生態,人口流動帶來的細菌和傳染病,更不用說環境污染和全球暖化的問題。另外,人類種族間文化、宗教、社會結構、技術等等也互相影響。如現在主流的宗教,作者形容為「可移植」的,其思想易於傳播,取代了不少土著的宗教。另一例子是,隨著人權、自由的思想傳播,也使行之已久的奴隸制度被廢除。

網絡所觸及的地方,無論是自然或是人類的多樣性也會下降,少數的會被同化。正如瑪雅、復活島曾經有過的文明,在接觸網絡之後,便已消失所蹤,只剩下現在也難以考究其來由的古跡文物。 (其中一種說法啦)

比較印象深刻的是,書中說到中國宋朝已有全球第一個市場經濟,又有足夠鋼鐵,但卻沒有工業化,要到七百年後的英國才真正發生工業革命。作者說原因可能是傳統保守的儒家思想,當官的害怕商人和軍人權勢過大而加諸限制。而經歷元朝之後,更不信任外族,趨向保守外交,結果不能在網絡中取得優勢。我心想,中國人是聰明的,但是總是時機人物不對,往往錯失了機會。

至於展望如何呢?書末作者兩父子的評論,都透露了對於現代網絡文明,對地球資源的消耗是否快到盡頭而擔憂。JR 麥克尼爾認為,人類科技發展下,可能有能力控制文明和生物的演進發展,但此力量落在誰人手中將會很關鍵。威廉‧麥克尼爾認為,到現在為止人類文明發展大都與我們生物發展的進程相似,都是由簡單走向複雜,各個小部份亦走向專門分工,形成巨大的組織網絡。而以後的發展,除了走向單一和全球化外,關鍵可能在於細胞式的小形社群能否共存,亦即能否找到一個共生的模式,維持多樣性。

因為花了太長時間去消化,所以反倒一些細節不太記得,以上算是一點閱讀筆記吧。

P.S. 本書的譯者張俊盛和林翠芬,本身有研究電腦翻譯,他們用了 Google search、Google translate、TermMine 等軟件來輔助此書的翻譯,如在選擇詞語時除了看上文下理,也會從 Google 統計數據作參考,據說的確加快了翻譯的速度和品質。

美麗新世界

Wednesday, December 19, 2007

記得大概在初中時,會有英文讀書課,堂上的活動就是讀英文的課外書。那時候派給我的英文小說對當時的我而言很難讀,句子複雜,字詞艱深。課堂老師也建議我如果看不太明白,可以到圖書館另借一本比較容易的。但那時候死不服輸回家查字典做翻譯,似懂不懂地大概明白了頭兩頁的大意:一個主管帶著一班學生,參觀某胚胎研究中心,講解當中運作。後來我放棄跟自己作對,到圖書館另借一本,沒有再看那個故事。

最近看一本小說,為什麼開首的故事情節有點眼熟?回想一下原來就是上述那本小說。不過,我這次讀的是中文版本,在理解上沒有困難。這本就是著名的反烏托邦小說《美麗新世界》 ( Brave New World )。

《美麗新世界》使用科技為控制的手段,直接在人類的胚胎動手腳,製作不同等級的人類來從事不同的工作,使用制約、睡眠學習等進行更徹底洗腦,使各等級的人安守其本分。使用複製技術大量做人,廢除傳統社會的家國結構,再沒有父母兄弟夫妻,再沒有親情、愛情。奉行享樂和消費主義,將性愛變成消閒活動,以快樂填充人們的時間,還引入迷幻藥物取代宗教,使他們沒有獨處思考的時候。

所有的一切,為的是「共有 統一 安定」,人是機器裏的一個齒輪,機器要運作良好,齒輪自然要夠穩定,因此要消除所有能使齒輪出狀況的條件和環境。

但即使是齒輪也會偶然出問題,更何況是人類這麼複雜的個體,否則這個故事便沒有戲好唱了。在保留區的野人,閱讀了莎士比亞的故事,看到人與人間的種種感情,和個人對於靈魂的追求。他進入城市,對周遭新科技感到好奇新鮮,但也發現這裏的人、這裏的社會、這裏的文明,壓根兒不是他在書中看到的「美麗新世界」。他轉居深山,實行苦行生活,煉就自己的靈魂,但卻始終逃不出文明的「侵蝕」。

在書中,除卻文明城市和保留局外,還有個別的島嶼,給個別「不正常」的人移居去,那可會是在文明和落後的兩個極端間的第三選擇?作者沒有描述那是個怎麼樣的世界,或許還有希望?

看這些故事,我們不得不自問一下,人是否在某種幻覺中已可心滿意足?而甚麼又是真實?

共同的因

Tuesday, November 27, 2007

看 Ray Bradbury 的作品,雖算不上迷,但很配服他可以將科幻寫得如此美麗,因此也入手了非科幻的 《闇夜嘉年華》 。故事講兩個小伙子如何面對遊藝團的「邪惡入侵」。特別喜歡這一段威爾老爸想著要如何對兩小子要講解那難以名狀的「愛」:

他該怎麼說才能讓他們了解?他能不能說,愛是人類共同的因,共有的經驗?它確是攸關生命的元素,不是嗎?他能不能說出,他對於今晚,當外面的世界正瘋狂旋轉著,有如一個巨大的太陽穿越無比浩廣的空間 — 而這空間又穿越另一個更加浩瀚的空間 — 也許正朝著什麼前進或者飛離的時候,他們全部聚在這裡的感覺?他能不能說:我們正分享著這每小時億萬哩速度的航行?我們擁有共同的因可以對抗這黑夜?剛剛開始時我們幾乎沒有共同的因。為什麼要愛一個在三月的草原上放風箏的孩子?因為我們手上燒燙的細線灼傷了我們的手指。為什麼會愛一個從火車上看見的正在探井取水的鄉材女孩?因為我們的舌頭仍然記得多年前某個正午那水的冰涼觸感。為什麼要趴在路邊死者的身上哭泣?因為他們貌似我們四十年不見的老友。為什麼看見小丑被蛋糕砸臉的時候會大笑?因為我們嚐到了蛋奶凍,嘗到了生命。

為何要愛那個身為你妻子的女人?因為她呼吸著我熟悉的世界的空氣,因此我愛那鼻子。她的耳朵聽見的是我會哼唱一整夜的音樂,因此我愛那對耳朵。她的眼睛因大地的四季轉換而欣喜,因此我愛那雙眼睛。她的舌頭嚐過榅桲、桃子、山楸梅、薄荷與萊姆,因此我喜歡聽它說話。她的肉體懂得冷、熱、磨難,因此我體驗了火、雪花和痛楚。種種共享、共有的體驗。千萬種刺癢的肌理。切除了一種感官,就等於切除了生命的一部分。切除了兩種感官,生命立即空了一大半。我們喜歡自己熟悉的一切,我們喜歡自己之所以為自己。共同的因,共同的因,屬於嘴、眼、耳、舌、手、鼻、肉體、心和靈魂的因。

可是…… 該怎麼說才好呢?

(雖然現在可能沒有人抄寫詩文,但上面都是我親手打的 :p)

延伸閱讀: 火星紀事 – 置之死地而後生

書展收穫

Sunday, July 22, 2007

書展一向都是「散貨場」,相信對各大書商來說是每年很重要的一個「收入」來源,因為這幾天香港人會瘋狂地買他們這一年要看的書。對於我來說,有平時逛書店興趣但又猶豫不決買不買的書,會變成在書展「順手」買了。今年的買了:

  • CSS禪意花園 — 即《The Zen of CSS Design》的大陸簡體版,英文版要 2XX,台版要 16X,但大陸版就 49,雖然在用紙或包裝上或許比不上,但翻譯也算是不錯
  • 火之鳥漫畫 boxset — 全套 22 本 只賣 154,原價是 308,沒記錯 154 這個價是限量的
  • 神秘島 — 凡爾納經典科幻作品
  • 時間新簡史 — 就是時間簡史的再簡化版本。科學底子不好,時間簡史其實看得半明半不明,看看這本會不會比較易入口?
  • Web2.0 大引爆 — 因為比較平
  • 這醫生很潮 — 因為比較平
  • 藍海策略圖解版 — 買知道多一點但又不想買大書
  • The Tipping Point
  • 讀者文摘舊期刊兩本 — 純粹是好久沒看,5 元一本

因為火之鳥的關係,今年變成我買得最多書的一年書展。