Browse by Tags

小試 JavaScript Promise
非同步邏輯是寫 JavaScript 逃不掉的複雜課題,古早流行的做法是傳入 Callback 函式當參數,待特定作業完成再呼叫,缺點是串接程序一旦變多,就會出現波動拳式排版,寫到渾然不知身處夢境第幾層: asyncJob1( function () { //Callback 函式: asyncJob1 完成後呼叫 //...... ayncJob2( function () { //Callback 函式: asyncJob2 完成後呼叫 //...... ayncJob3( function...
在JavaScript模擬C# Dictionary、LINQ Where、Select與OrderBy
一週內被兩位同事問到幾乎相同的問題,這一定是天意!趕緊寫篇FAQ以免天公伯不開心~ 【問題】 用JavaScript要怎麼實現Dictionary<string, T>? JavaScript有沒有類似LINQ Where()、Select()、OrderBy()的東西? 回答第一個問題,JavaScript物件本身就具備Dictionary<string, T>的特性,範例如下: <! DOCTYPE html > < html > < head...
Posted 03 July 2016 12:40 PMJeffrey | with no comments 11,648
Filed under: ,
自製jQuery waitFor函式:等待條件成立執行作業
在寫JavaScript程式時,常有協調非同步作業的需求,像是作業B必須等待作業A完成後再進行,傳統做法多使用Callback函式,例如: function doJobA(callback) { //do something callback(); } function doJobB() { //do another thing } doJobA(doJobB); 學會jQuery.Deferred後,我幾乎都改用Deferred處理非同步作業,不管串接多個作業循序執行[ 參考 ]或等待多項作業完成再進行...
Posted 28 December 2014 06:55 PMJeffrey | with no comments 8,754
Filed under: ,
TIPS-JSON日期格式實戰小技巧
過去 介紹過 微軟針對DateTime制訂的獨有JSON表示法: "\/Date(…)\/"。今天實際應用時,發現一個有趣現象: ASP.NET Server傳來包含DateTimeJSON字串,因使用JavaScriptSerializer解析,日期會呈現"\/Date(…)\/"格式;在Client端以JSON.parse()還原回成物件,由於未應用到日期值,故未另外將其轉換成JavaScript Date型別,在JavaScript物件中該值維持字串型別...
TIPS-我的Javascript型別偵測大全
我常 好高騖遠痴心妄想 胸懷壯志,總想寫出很"聰明"的Javascript函數,呼叫時傳入DOM元素也好、丟個jQuery物件也成、給個函數也可,程式都能依傳入的參數型別自動轉換處理。無奈自己不學無術,對於Javascript這種動態語言的變形蟲式型別處理,始終停留在懵懵懂懂的階段... jQuery陸續提供了 $.isArray() , $.isFunction() , $.isXmlDoc() 等函數,算是解決了部分難題,餘下的我則會用typeof varName來偵測。但說來好笑...
Posted 11 May 2011 06:11 AMJeffrey | 9 comment(s) 13,333
Filed under: ,
TIPS-跨Domain傳遞Modal Dialog結果
雖然 Model Dialog 不是什麼好東西,礙於它目前還是內部系統的一哥,偶爾伺侯一下難搞的大頭症主角是難免的... orz 這回遇到的難題: A網站的網頁利用showModalDialog顯示來自B網站的網頁,透過window.dialogArguments傳過去的參數以及Modal Dialog中用window.returnValue傳回的結果,因違反 Same Origin Policy ,判定跨Domain不得存取,全都變成了undefined。 我用以下例子來重現問題,先做一個caller...
Posted 06 May 2011 08:03 AMJeffrey | 1 comment(s) 11,712
Filed under: , , ,
jQuery - 中文輸入法與KeyDown/KeyPress事件
最近專案中引用了Telerik ASP.NET擴充元件 AutoComplete輸入欄位 ,測試時發現偶爾會不聽始喚,輸入文字時無法觸發資料查詢,在Javascript Source Code裡反覆追蹤測試,燃燒了可觀的寶貴春青,終於理出頭緒: 問題在中文輸入法! 過去模糊地知道中文輸入在瀏覽器的鍵盤事件行為上有些特殊,但從未深究,這回算是比較清楚研究其中的差別。其實最明顯的差異是: 切到中文輸入法後,輸入文字將不會觸發KeyPress事件,只會有KeyDown,而且傳回的e.keyCode會一律是229...
jQuery 1.4.2 .focus()導致IE首次change事件失效
同事通報的Issue,花了好大功夫才找出問題點,特此記錄。 某網頁的<input id="x" type="text" />以jQuery掛上change事件,使用IE測試,卻出現第一次修改值後按Tab不會觸發change事件,第二次起change事件正常的情形。我另外加了document.getElementById("x").onchange = function() { ... };作為對照,發現使用onchange掛上的事件每次都如預期被觸發...
Posted 09 March 2011 01:17 PMJeffrey | 5 comment(s) 10,827
Filed under: , ,
【答客問】詭異的TextBox接龍
網友Chuck留言,提了一個 關於Super Tables的詭異問題 : 暗大您好: 我是用.NET3.5版本開發的,瀏灠器為IE7,程式的 目的是透過ASP.NET的控制項DataGrid顯示多筆資 料,顯示資料的樣貌有純文字和輸入文字方塊和下拉式 選單等等…。問題在於我用了下面這一行敘述: $(".DetailFlexGrid").toSuperTable({ width: "700px", height: "400px", fixedCols...
Javascript Tips - 一個call()的應用實例
今天在處理jQuery自動完成時遇到一個問題。就以 jQuery自動完成懶人包 的例子說起: 在findValue(li)中,使用了Hard-Coding的方式將額外的值填到txtSymbol及txtCName: function findValue(li) { if (li == null) return alert("No match!"); $("#txtSymbol").val(li.extra[0]); $("#txtCName"...
Posted 25 August 2010 08:08 PMJeffrey | 1 comment(s) 7,289
Filed under: ,
筆記-讓ASP.NET TreeView可以透過Javascript新增節點
同事在網頁上用了 ASP.NET TreeView控件 ,但專案規格中需要由Javascript端完成新增節點的動作,很不幸地,這不是ASP.NET TreeView內建支援的功能。 如果時間充裕的話,我會建議改用jQuery TreeView Plugin,較符合大量Client端客製的需求,但因時程迫在眉睫,且只差這個小功能,所以大家不要考究"破解"ASP.NET TreeView前端設計的意義,把它想像成打破水缸救人就好。 寫完這段程式,等同於小小地破解ASP.NET TreeView前端HTML與Script設計...
ASP.NET的JSON日期轉換
最近寫程式處理物件轉JSON時,才發現日期型別在轉換上有特別之處,在此做個整理: JSON中時間型別會轉成UTC標準時間。 題外話: 大家知道UTC是什麼的縮寫嗎? 是 Coordinated Universal Time 。 靠!! 取第一個字母縮寫明明該是CUT,為什麼會變成UTC? 原來這裡有段歷史,當初在定義名稱時,為了該用英語Coordinated Universal Time[CUT],還是法語Temps Universel Coordonné[TUC]吵翻天。最後一不做二不休,索性誰都不用...
ASP.NET AJAX Control慨然嘆曰: 既生瑜,何生亮?
不只是我,連Microsoft也深深愛上jQuery了! 兩年前,我與jQuery 一見鍾情 ,當下決定甩掉豪門千金ASP.NET AJAX Client Library,跟著jQuery私奔為愛走天涯... 真是個為難的決定呀!(嗯呀! 哪個男人不想減少奮鬥三十年) ASP.NET AJAX Client Library是所有ASP.NET AJAX Control的基礎,而網頁互動不可或缺的元素如DatePicker、 AutoComplete 、 Accordion … 等,在ASP.NET...
jQuery 1.4 小閱兵
為了歡度jQuery四歲生日(jQuery由John Resig 於 2006/01/14 在 BarCamp NYC 首次發表 [註] ),jQuery開發團隊在2010/01/14釋出了 jQuery 1.4版 。 簡單整理一下我所理解的1.4改版重點: 大量重構常用的函數,降低程式複雜度(主要是減少內部函數彼此呼叫的次數),達到改善效能的目標。 * .css(), .attr(), .val(), .html(), .text(), .append(), .prepend(), .before...
Posted 16 January 2010 09:36 AMJeffrey | 14 comment(s) 28,373
Filed under: ,
CODE-滲透式jQuery.live()
手上有個需求,要掌握網頁裡所有連結被點擊的狀況。 對jQuery來說這是小菜一碟,利用$("a").live("click", function() { ... });就可在使用者點擊連結時加入自訂邏輯。不過,有挑戰性的部分在於網頁中可能穿插IFrame內嵌其他網頁,原本這個手腳只想動在MasterPage,就打算一口氣將網站所有網頁一網打盡,但$("a")的範圍只限於jQuery所在的window物件範圍,如果連內嵌網頁都要涵蓋,感覺上得在內嵌網頁裡也加上jQuery...
更多文章 下一頁 »

搜尋

Go

<August 2018>
SunMonTueWedThuFriSat
2930311234
567891011
12131415161718
19202122232425
2627282930311
2345678
 
RSS
創用 CC 授權條款
【廣告】
twMVC
最新回應

Tags 分類檢視
關於作者

一個醉心技術又酷愛分享的Coding魔人,十年的IT職場生涯,寫過系統、管過專案, 也帶過團隊,最後還是無怨無悔地選擇了技術鑽研這條路,近年來則以做一個"有為的中年人"自許。

文章典藏
其他功能

這個部落格


Syndication