說寫就開乾的博客,雖然能夠我說的漏洞百出,但是我依舊要記錄下來,不過,可能不會有多少人像我同樣ZZ(笑~)前端
上週的項目仍是作PC管理系統中的功能配置,哎,移動端不給我這個新人作,我也好想試試rem+媒體查詢的佈局啊~chrome
前提:高傲的前端從不屑於搞兼容,哼~瀏覽器
1.需求:點擊按鈕,本地上傳文件佈局
其實就是點擊到了<input type="file">,給input type=file設置爲opacity=0便可this
可是,我是要有多蠢,纔會把input裹在button裏面?效果以下spa
而後,友好高情商的Chrome徹底沒有問題,其餘的瀏覽器都有問題了!估計其餘瀏覽器都想弄死我,兩個可被點擊的標籤放在一塊兒,到底點擊哪個?只有chrome認可,點擊內部的input,其餘的瀏覽器都認定button裏面嵌套input就是錯誤的,點擊就只有button的效果。orm
解決:放棄了點擊按鈕陷下去的良好手感,也就是把button換成了span標籤blog
2.需求:把input type=file裏面的文件傳給後臺事件
使用到了form.submit,具體的我還不是很清楚,知其然,不知其因此然,因此只提一點,ci
在form標籤中你要寫一個target='id',咱們的作法就是id爲創建的一個iframe的id名,iframe的樣式爲"display: none;"
若是不給設置一個target,使用form.submit時,會把後臺數據接收到新標籤頁(默認),也就是會進行一個頁面的跳轉操做,用戶體驗度瞬間差好多。
3.關於textarea
我想要根據textarea獲取到回車鍵的操做,最後得出,textarea中輸入文本時,敲擊回車鍵,會在數據中存儲一個'\n',因此,經過\n,能夠在獲取textarea時,分段
4.爲何要解除事件綁定?
咱們知道,事件是綁定在元素上的,對元素進行操做會致使事件的觸發。若是事件2嵌套在事件1中呢?以下圖
每一次點擊span1,都會給span2存儲一次點擊事件,真正的點擊span2時,會一次性把存儲下來的全部的事件所有出發,
咱們重複的點擊span1,span2,span1,span2,結果就是
天吶,這麼坑,我也懶得管那麼多了,基本全部的事件,我都會先解綁在綁定,管它怎麼滴的,個人兩種解綁方式:
5.事件委託
js動態建立的元素,也就是將來元素,只能經過事件委託,纔可以對將來元素進行操做,使用的是jQeury的on()方法,如上圖解綁方法二
父元素必須是static元素啊,最好是距離真實元素最近的父元素啊,this指向父元素,e.target指向真實元素啊,等等老生常談的我就不提了,
要說的一點是,給父元素綁定兩個click事件,雖然真實元素不一樣,可是事件都是click,因此默認爲一個類型,所以,下面的click會覆蓋住上面的clcik事件,以下圖
解決方法:父元素不間斷的直接寫兩個on事件,不能斷掉,如圖:
總結一下:
我上面的經驗,全都是菜鳥,學的不紮實致使的錯誤,甚至可能我上面寫的都依舊有問題。
一步步走吧,但願早日牛逼哄哄,用代碼創造自個人世界!