把參數直接放到事件定義裏面,相似下面這樣,也是能夠,可是這樣不夠Nice.javascript
<a href="javascript:void(0)" onclick="clickhandler(arg1)">點擊</a>
上面這種方法有着這樣那樣的限制,好比在服務器端生成這段代碼時,arg1的生成又要用'單引號包裹,若是在客戶端視圖模板中生成上面這個代碼,有可能徹底失敗,好比在目前的AngualrJS產品版本中。因而乎有了下面這樣的作法:java
<a href="javascript:void(0)" text="arg1" onclick="clickhandler(event)">點擊</a>
上面這種方法在事件處理函數中的到event的target,再讀取屬性就能夠獲得text屬性值了,我也記不清楚我從那本書看到的text傳參這種作法,一樣起相同做用的屬性好像也沒幾個。這種作法有兩個問題:一、參數多的狀況下,屬性不夠用;二、text這樣的原生屬性命名有點糊里糊塗。今天碰到多參傳值的狀況下,看了一下JS權威指南後面的附錄參考,發如今HTML5中專門開闢了這麼一個屬性集叫data-set,因而乎像下面這樣定義:瀏覽器
<a href="javascript:void(0)" data-argname="arg1" onclick="clickhandler(event)">點擊</a>
固然還能夠定義更多的參數,這個HTML5屬性不算高精尖屬性,加個HTML5的那個兼容腳本,應該就能夠在舊版瀏覽器上用。服務器