值得記錄的 (二)
阿新 • • 發佈:2018-11-10
命名問題
使用 history.back(-1)
方法進行跳轉回到上一級頁面的時候,控制檯不停報錯 history.back is not a funtion
。直接輸入 history
發現 window
下的 history
被覆蓋了。導致錯誤的原因是之前寫 localStorage
歷史搜尋方法的時候用了 history
這個名稱導致把全域性 window
下 history
覆蓋。修復方法為更換 localStorage
API
名。
防止多次快速點選觸發效果
var isRun = true
$(node).click(function() { if(isRun){ // do somethings ... isRun = false; } setTimeout(function(){ isRun = true; },2000) })
indexOf
使用 indexOf
方法搭配 navigator.userAgent
來進行瀏覽器特性檢測
navigator.userAgent
// Chrome 和 FireFox 核心
isUseChrome = navigator.userAgent.indexOf("Chrome")
isUseFirefox = navigator.userAgent.indexOf("Firefox")
if(!((isUseChrome > -1) || (isUseFirefox > -1))) { alert('你所使用的瀏覽器瀏覽效果不佳,請使用 Chrome 或 FireFox 瀏覽器。') }
瀏覽器相關
遇到 360
等擁有 IE
meta
標籤,讓起預設進入極速模式(自動 Chrome
核心)。
<meta name="renderer" content="webkit">
事件解綁
在維護和修改該 jQuery
專案的時候,發現之前很多方法並不是只在全域性寫了一次,然後再到多個頁面上呼叫。許多方法被錯誤的寫到個很多個頁面之中,比如一些事件。這樣就導致了相當於事件被綁定了多次。使用將錯就錯的方法將每一次事件繫結之前用 unbind
進行解綁。
$("#button").unbind("click")
$("#button").bind("click", function () { // do somethings ... })