Time of Update: 2017-01-19
封裝Ajax 設計Async.Operation的最初目的就是解決Ajax調用需要傳遞callback參數的問題,為此我們先把Ajax請求封裝為Async.Operation。我在這裡使用的是jQuery,當然無論你用什麼基礎庫,在使用Async.Operation時都可以做這種簡單的封裝。 複製代碼 代碼如下: var Ajax = {}; Ajax.get = function(url, data) { var operation = new Async.Operation();
Time of Update: 2017-01-19
調用入口 鏈式調用存在Async.go方法和Async.chain方法兩個入口,這兩個入口本質上是一致的,只是Async.chain方法在調用時先不提供初始參數,而Async.go方法在調用時提供了初始參數並啟動非同步呼叫鏈。 複製代碼 代碼如下: Async.chain = function() { var chain = new Async.Operation({ chain: true }); return chain; }; Async.go =
Time of Update: 2017-01-19
arrayobj.sort(sortfunction); 參數:sortFunction 可選項。是用來確定元素順序的函數的名稱。如果這個參數被省略,那麼元素將按照 ASCII 字元順序進行升序排列。 sort 方法將 Array 對象進行適當的排序;在執行過程中並不會建立新的 Array 對象。 如果為 sortfunction 參數提供了一個函數,那麼該函數必須返回下列值之一: 負值,如果所傳遞的第一個參數比第二個參數小。 零,如果兩個參數相等。 正值,如果第一個參數比第二個參數大。
Time of Update: 2017-01-19
[Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]運行以上代碼,即可。如果大家想看的是 javascript indexOf的使用方法,請看下面的文章javascript indexOf函數使用說明JavaScript indexOf忽略大小寫_javascript技巧
Time of Update: 2017-01-19
下面的代碼片斷縮排目前還不完善,你也可以選擇 下載pdf 來閱讀. Contents摘要 什麼是closure 執行空間(執行內容, Execution Context) closure的一些用法 關於closure的效率 應用建議 結論 參考資料 本文的rst源碼 什麼是closure一種定義是:A "closure" is an expression (typically a function) that can have free variables together with an
Time of Update: 2017-01-19
幾個例子: 複製代碼 代碼如下: function case1(num){ switch(num){ case 1: document.writeln("show 1!!"); break; case 2: document.writeln("show 2!!"); break; case 3: document.writeln("show 3!!"); break; default: document.writeln("show others!!"); break; } } function
Time of Update: 2017-01-19
錨點(Anchor)相信很多人都不陌生,它方便訪問者在頁面的不同位置快速跳轉,直接找到自己感興趣的內容,如果說 RSS 是整個網站的摘要,那錨點就是一個頁面的摘要,通常一個頁面內容很多的時候,都會用錨點來定位。 但是錨點也有個問題,通常點擊錨點後,頁面會立即跳到目標位置,而本文介紹的方法,實現了錨點(Anchor)間平滑跳轉,效果非常不錯。複製代碼 代碼如下:<script type="text/javascript"> // 說明 :用 Javascript
Time of Update: 2017-01-19
var x = "XX"; y ="xxx"; 諸如此類。這有一個問題,比如說在代碼中的某一行,我想使用的一個已聲明的變數x,結果由於打字或者拼字錯誤,這個變數被寫成y了,結果相當於“隱式”聲明了一個變數y,在實際編程過程中,這種錯誤有時比較難以發現。 除此之外,今天通過同事介紹,瞭解到這種“隱式聲明”中的別外一個問題。
Time of Update: 2017-01-19
複製代碼 代碼如下: <script type="text/javascript"> // 說明:添加、移除、檢測 className function hasClass(element, className) { var reg = new RegExp('(\\s|^)'+className+'(\\s|$)'); return element.className.match(reg); } function addClass(element, className) { if (
Time of Update: 2017-01-19
想了想,還是發出來吧.雖然物件導向還不是很明白. OK [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]還可以把上篇文章的彈出層置中效果的製作和本例一起加個 提交 [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行] 主要代碼: 複製代碼 代碼如下:var Class = { min_w:960, bint: function(r) { $(r).style.display = "block";
Time of Update: 2017-01-19
這個效果本身難度不大,主要在程式結構和擴充中下了些功夫,務求用起來更方便,能用在更多的地方。程式特點 1,同一個提示框用在多個觸發元素時,只需一個執行個體; 2,顯示和隱藏分別有點擊方式和觸發方式選擇; 3,能設定延時顯示和隱藏; 4,有25種預設定位位置; 5,可在預設定位基礎上,再自訂定位; 6,可設定自適應視窗定位; 程式說明 【Tip對象】 Tip對象就是用來顯示提示資訊的容器,程式用Tip屬性工作表示。這個沒什麼要求,程式初始化時會對它進行一些設定。 首先進行下面設定: 複製代碼
Time of Update: 2017-01-19
方法一、js數組的定義與初始化定義一維數組方法1:var _TheArray = new Array);//定義_TheArray[0]="1";_TheArray[1]="2";_TheArray[2]="3";//初始化方法2:var _TheArray = new Array("1","2","3");//直接定義並初始化定義二維數組方法1var _TheArray = new Array(); //先聲明一維for(var i=0;i<10;i++){ //一維長度為10
Time of Update: 2017-01-19
JavaScript事件監聽完整執行個體(含注釋) [Ctrl+A 全選 注:如需引入外部Js需重新整理才能執行]addEventListener原來在IE中不可用,在IE中要用attachEvent, 還在想,在FireFox中運行得好好的,怎麼到IE下報錯了。 處理IE與FireFox事件監聽的對象: var oEventUtil = new Object(); oEventUtil.AddEventHandler =
Time of Update: 2017-01-19
廢話不多說,直接給大家貼代碼了。<script>$(function () {//highlight current / active link 左側導航判斷當前活動導航$('ul.main-menu li a').each(function () {var wo = window.location.href.substring(window.location.href.lastIndexOf('/') + 1, window.location.href.lastIndexOf('.
Time of Update: 2017-01-19
先給大家講下什麼是事件委託:通俗的講,事件就是onclick,onmouseover,onmouseout,等就是事件,委託呢,就是讓別人來做,這個事件本來是加在某些元素上的,然而你卻加到別人身上來做,完成這個事件。也就是:利用冒泡的原理,把事件加到父級上,觸發執行效果。其所謂的動態添加事件實質就是指js中的事件委託。我們知道在js中,事件處理只能綁定在當前被選中的元素上,換句話也就是說,事件處理只能綁定在當前文檔已經存在的元素上!但是,往往小夥伴們都會遇到一個問題就是,我的元素是後來動態添加到
Time of Update: 2017-01-19
javascript加減乘除的簡單一實例<html><head><meta http-equiv="Content-Type" content="text/html;charset=utf-8" /></head><script language="javascript" type="text/javascript">//除法函數function accDiv(arg1,arg2){ var t1 = 0, t2 = 0, r1,
Time of Update: 2017-01-19
js中沒有擷取class的辦法,找了一些封裝好的方法,這裡整理一下(1)先進行封裝//封裝getClass function getClass(tagName,className) //獲得標籤名為tagName,類名className的元素 { if(document.getElementsByClassName) //支援這個函數 { return
Time of Update: 2017-01-19
還有,“通過事件機制,可以將類設計為獨立的模組,通過事件對外通訊,提高了程式的開發效率。”。相信C#程式員對事件的好處是深有體會的。好了,Code is cheap.看代碼: function class1() { // 最簡單的事件設計模式 } class1.prototype = { show: function () { this .onShow(); }, onShow: function () { } } function test() { var obj = new class1()
Time of Update: 2017-01-19
比如說頁面的字元處理,js的Regex驗證等等。下面我就將我自己淺薄的開發經驗綜合網上的龐雜資源稍稍綜合整理一下,省得自己以後要用到時再搜尋了。這個系列我會將平時常用的函數歸納整理起來,全當作是拋磚引玉吧。 Code is cheap.看代碼: 一、常見的字串處理函數 // 返回字元的長度,一個中文算2個 String.prototype.ChineseLength = function() { return this .replace( / [ ^ \x00 - \xff] / g, " **
Time of Update: 2017-01-19
還隱約記得得知了來龍去脈,為自己掌握了一個經驗而歡呼雀躍。 還隱約記得被這同一問題折磨了無數次後,無奈與痛下決心的心境。 首先我必須感謝那些即使這個問題我強調過無數次,也依然反覆重複類似錯誤的人們。 沒有他們反覆犯錯的鼓勵,或許我不會認真考慮這個問題的解決方案。 其次,必須感謝《JavaScript進階程式設計》的作者和譯者。 在這裡我得到瞭解決該問題的啟示,不然我依然要每每強調使用parseInt時應注意什麼。 同時,希望在這裡不僅僅留下一個解決方案。