| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
m45y
10年前发布

几个常用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++) {          item = eles[i];          val = item.getAttribute(attr);          if (typeof val == "string" && val.length > 0) {              callback && callback.call(null, item, val);              ret.push(item);          }      }      return ret;  };    //目标元素绝对于屏幕的坐标  /**   * 为目标元素添加事件监获得元素绝对于屏幕的坐标   * @param {element} ele 目标元素   * @return {Integer, Integer} 返坐标对象   */  var pos = function(ele) {      var x = 0, y = 0;      if (ele && ele.offsetParent) {          do {              x += ele.offsetLeft;              y += ele.offsetTop;          } while (ele = ele.offsetParent);      }      return { x:x, y:y };  }    //获取鼠标当前的坐标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) {          x = e.pageX;          y = e.pageY;      } else if (e.clientX || e.clientY) {          x = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;          y = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;      }      return {x:Math.abs(x), y:Math.abs(y)}  }    //无返回发送数据  /**   * 请求统计行动,将数据通知给服务器   * @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 () {          ele.onload = ele.onerror = ele.onabort = null;          ele = window["$BAIDU:DATA$"] = null;      };      for (var n in query) {          data.push(n + "=" + encodeURIComponent(query[n]));      }      data.push("ot=" + new Date().getTime());      query = data.join("&");      ele.src = url + "?" + query;      return true;  };