你出現錯邊了吧 ..
月份: 八月 2015
如果你好奇,伊繁星校徽的來由
很深奧的遞迴笑話。
我原本還在想說,這是哪門子的笑話,
後來才發現,這根本不是笑話,根本是很深奧的一句話啊!
「遞迴簡單說就是呼叫自己」
Facebook 怎麼做到標記的?
自從之前解析 Facebook 的 Textarea 後,就發現當你輸入「@人名」的時候,
在送出時其實會變成「@[使用者編號:1:人名]」,此時 FB 會順便記錄你「標記了誰」。
送出的基本欄位
基本有兩個,一個是文章內容,一個則是用來記錄你標記了誰的陣列,舉例來說:
content 欄位記載了「今天我跟 @[32:1:卡莉絲] 去吃飯欸!」
tags 欄位則記載了「32」這個數字,當然如果有多個人,可以變成「32, 33, 34」這樣送出。
伺服器端怎麼處理標記?
tags 可以透過 PHP 中的 explode 功能,將「32, 33, 34」中透過「,」符號將字串切成陣列:
$Tags = explode(', ', '32, 33, 34');
那文章內容怎麼讓人易讀?
那你可能會想:「文章內容要怎麼辦?」,
很簡單,那就是 Regex。
上面的 Regex 我暫時寫的,但就是這種做法,
所以你知道我們可以透過 tags 取得這個文章「有誰」,接下來取得 tags 裡所有人的「名字」,
然後就是將那些「標籤」透過 Regex 然後 Replace(替換)成他們的名字,大概是這樣
接下來就可以如期的輸出你要的內容了:
完美這種東西不會來找你。找個時刻,然後讓它完美。
TeaMeow 的懶人教室 —— 條件式
這裡是我本身會寫的懶人作法,有時候會讓程式更簡潔,通常是 PHP 或者 JS 都可以用。
如果⋯⋯
你可以把「如果怎樣,這個值就怎樣的」方式縮短,例如原本:
if($Foo) { $Bar = 'OK'; { else { $Bar = 'Not OK'; }
可以變成
if($Foo) $Bar = 'OK'; else $Bar = 'Not OK';
更可以變成
$Foo = ($Bar) ? 'OK' : 'Not OK';
必須⋯⋯
有時候你會用「IF 去框住,例如必須大於多少,才可以」的方式,大概是:
function Foo($Bar) { // 必須大於 50 才執行下面語句 if($Bar > 50) { $Msg = 'Im Really OK.'; $Time = time(); } }
可以改成
function Foo($Bar) { // 直接在開頭就先做了斷 if($Bar > 50) return; $Msg = 'Im Really OK.'; $Time = time(); }
Tocas 的新功能 「Binder」
其實這個功能是看到這一篇「Backbone 的 View」有感而發的,
在 Backbone.js 裡面這裡的範例是這樣:
events: { "click #add-friend": "showPrompt", "click .delete" : "delete_li" }
我想說:「喔?還不錯。」
然後就打算自己也在 Tocas 加了一個類似的功能,不過寫法不同,
因為看起來 Backbone.js 是透過「空白」來區隔「事件」跟「元素」的,
但是我想說有時候可能會加很多「事件」,有時候可能會有很多「元素」,或者很多「回傳」。
Tocas 做法
所以我後來研發出來的寫法是這樣:
$.binder = function(Binds) { for(var i in Binds) { /** Split the event and the target first */ var Splits = i.split('|'), /** The first array is events */ Events = Splits[0], /** Split the targets */ Targets = Splits[1].split('&') /** Each target */ for(var t in Targets) if(Binds[i].isArray) /** Bind each callback if it's a callback array */ for(var f in Binds[i]) $(Targets[t]).on(Events, Binds[i][f]) else $(Targets[t]).on(Events, Binds[i]) } }
用法
$.binder ({ 'click | img & a' : meow.addNew, 'mouseover | img' : meow.removeNew })
翻譯成中文可以像這樣
$.binder ({ '事件 事件 事件 | 元素 & 元素' : 回傳, '事件 | 元素' : [回傳, 回傳] })
所以你可以有多個事件,或是多個元素,甚至多個回傳(用陣列包起來)。
比照圖
看起來至少比下面的一般 $.on 還要好多了 ..
根本人生指導大師。
Stackoverflow 真是無奇不有。
原文:http://stackoverflow.com/questions/9089953/can-you-have-a-span-within-a-span