兩個比較有用的Javascript工具函數(原)

1.大家在實際工作中,會寫各式各樣的賦值語句。
比如最常用的obj.style.display = "none";
如果這樣的賦值語句一多,obj.style一排下來都要看暈了

下面我的base.js中的extend函數可以允許用json格式賦值屬性甚至是函數句柄

/**
* 擴展函數
* @param target 需要擴展的對象
* @param params 要往target裏放的屬性和方法
*/
function extend(target, params) {
if (!target) {
target = {};
}
for (var prop in params) {
target[prop] = params[prop];
}
return target;
}



2. 由於ie不完全遵守w3c標準,他的事件模型和別的瀏覽器不一樣。調用的方法也不一樣。
如果遇到要爲控件動態增加事件。用onclick = function() {}一類的在dom動態創建的時候不一定有效,而且無法綁定多個句柄。下面介紹一個通用的支持全瀏覽器的綁定事件函數。
在大部分情況下,useCapture用的是false,所以這裏乾脆寫死。

/**
* 動態創建事件句柄
* @param control 需要擴展的對象
* @param eventName 事件名
* @param fn 函數句柄
*/
addEventListener = function() {
if (window.attachEvent) {
return function(control, eventName, fn) {
// 解決this爲window對象的問題
control.attachEvent('on' + eventName, function(e) {fn.call(control, e);});
};
} else if (window.addEventListener) {
return function(control, eventName, fn) {
control.addEventListener(eventName, fn, false);
};
} else {
return function(control, eventName, fn) {
control['on' + eventName] = fn;
};
}
}();


以上兩個函數的使用Sample可以參照我寫的其他的文章中的代碼
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章