幾個常用JavaScript函數
//清理不可見多于字符 /**
- 清理不可見多于字符
- @param {string} string 事件類型
- @return {string} string */ var trim = function(string){ var string = string + ""; return string.replace(new RegExp("(^[\\s\\t\\xa0\\u3000]+)|([\\u3000\\xa0\\s\\t]+\x24)", "g"), ""); };
//布爾類型或者01之間的切換 /**
- 布爾類型或者01之間的切換
- @param {Boolean, 0|1} val 值
- @return {Boolean, 0|1} 返回反 */ var turn = function(val){ return typeof val == "boolean" ? (1 - val) : !val; };
//為目標元素添加事件監聽器 /**
- 為目標元素添加事件監聽器
- @param {HTMLElement|string|window} ele 目標元素或目標元素id
- @param {string} type 事件類型
- @param {Function} callback 需要添加的監聽器
*/
var on = function(ele, type, callback) { ele = typeof ele == "string" ? document.getElementById(ele) : ele; ele.attachEvent ? ele.attachEvent("on" + type,
};function (type) { callback.call(ele, type); }) : ele.addEventListener && ele.addEventListener(type, callback, false);
//按照Attribute屬性獲得元素 /**
- 按照Attribute屬性獲得元素 *
- @param attr 屬性名稱
- @param val 屬性的值
- @param parent 父節點,默認全部
- @param tag TAG名稱,默認所有
- @return Elements 符合所有條件的DOM對象
/
var walk = function(attr, callback, parent, tag) {
var eles = (tag == "" && document.all) ? document.all : (parent || document).getElementsByTagName(tag || "*");
var ret = [];
var val, item;
for (var i = 0; i < eles.length; i++) {
} return ret; };item = eles[i]; val = item.getAttribute(attr); if (typeof val == "string" && val.length > 0) { callback && callback.call(null, item, val); ret.push(item); }
//目標元素絕對于屏幕的坐標 /**
- 為目標元素添加事件監獲得元素絕對于屏幕的坐標
- @param {element} ele 目標元素
- @return {Integer, Integer} 返坐標對象
*/
var pos = function(ele) {
var x = 0, y = 0;
if (ele && ele.offsetParent) {
} return { x:x, y:y }; }do { x += ele.offsetLeft; y += ele.offsetTop; } while (ele = ele.offsetParent);
//獲取鼠標當前的坐標xy /**
- 獲取鼠標當前的坐標xy
- @param {event} 全局事件對象
- @return {Integer, Integer} xy坐標
*/
var mouse = function (event) {
var e = event || window.event;
if(e.type != "mouseover") return null;
var x = 0, y = 0;
if (e.pageX || e.pageY) {
} else if (e.clientX || e.clientY) {x = e.pageX; y = e.pageY;
} return {x:Math.abs(x), y:Math.abs(y)} }x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
//無返回發送數據 /**
- 請求統計行動,將數據通知給服務器
- @param {Array|string|Object} query 數據字符串或者對象
*/
var log = function(url, query) {
var ele = new Image(), data = [];
window["$BAIDU:DATA$"] = ele;
ele.onload = ele.onerror = ele.onabort = function () {
}; for (var n in query) {ele.onload = ele.onerror = ele.onabort = null; ele = window["$BAIDU:DATA$"] = null;
} data.push("ot=" + new Date().getTime()); query = data.join("&"); ele.src = url + "?" + query; return true; };</pre>data.push(n + "=" + encodeURIComponent(query[n]));
本文由用戶 m45y 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!