2009年7月31日 星期五

extjs - EditorGridPanel編輯後欄位錯亂的問題


Ext JS的Ext.grid.EditorGridPanel中有個bug,就是當使用者修改某欄位後,內容就會位移。不過這個bug只會發生在IE,FireFox不會有問題(看圖就知道我想說啥啦)。

其實問題就出在viewConfig: {forceFit: true},這是要讓grid自動設定欄寬,不用自動調整的話,自己去設定ColumnMode中每個欄位大小,bug自然就解啦。
在https://yui-ext.com/forum/showthread.php?t=69637 中有較為詳盡的說明。

2009年7月30日 星期四

javascript(5) - function


在java script中,函數必須以關鍵字(key word) function開頭,function name可寫可不寫(named/anonymous function)。可以有0個以上的參數,參數會被存放於arguments中。
function f1() { alert('f1'); } f2 = function (x) { alert('f2'); }; /* 注意; */ (function() { alert('f3'); })(); /* defined anonymous function and invoke. 注意後面的(); */ f1(); f2();
arguments
當pass的參數少於function定義的參數時,少的這些參數會被視為undefined。
function pass(x) { alert(x); } pass(); pass(123); 其實,function的參數會被儲存在arguments(Arguments類別)中。
function max() { var max = arguments[0]; for (var i = 1; i < arguments.length; i++) { if (max < arguments[i]) max = arguments[i]; } return max; } alert(max(9, 7, 1, 3)); arguments並不是一個真的array,而是一個Arguments,當改變function的參數時,也會同步改變arguments。
function print(x) { alert(x); arguments[0] = null; alert(x); } print('123');
callee
另外arguments還有另外一個常用的properties - 'callee',用於傳回正在執行的Function物件,常用於匿名的function的遞迴(recursive)。
function factorial(n) { if (n <= 0) return 1; else return n * arguments.callee(n - 1) } alert(factorial(3));
function's properties
function在JavaScript中算是個object,所以自然就有properties,這邊介紹幾個properties,length取得function參數數量。
var f1 = function(x) {return x * x}; var f2 = function(x, y) {return x + y}; alert(f1(3)); alert(f1.length); alert(f2.length);
apply()/call()
call()/apply()讓使用者暫時的將function當成某個object的method.
如f.call(obj, 1, 2) 等同於
obj.m = f;
obj.m(1,2);
delete obj.m;
apply()和call()很像, 只是apply的參數必須是array
f.apply(obj, [1,2]);



開箱文 - 麥當勞之Hello Kitty


熱騰騰的kitty終於到手啦,前幾天在新聞上看到麥當勞又要推出kitty的系列商品,本來不以為意,但是越看越可愛,害我忍不住衝啦..趁著中午要去銀行辦事,就"順道"繞去麥當勞買了個經濟餐在加20元。
呼..我的Hello Kitty就到手啦!!
比想像中的大..大約十公分左右喔..
合體囉...Kitty回家啦!!!

熱門文章