var $ = function (id) { return (document.getElementById(id)); } var Ajax = { //创建AJAX对象XHR "createXHR": function () { if (typeof XMLHttpRequest != "undefined") { return new XMLHttpRequest(); } else if (typeof ActiveXObject != "undefined") { var vesions = ["MSXML2.XMLHttp6.0", "MSXML2.XMLHttp3.0", "MSXML2.MXLhttp"]; for (var i = 0; i < 3; i++) { try { return new ActiveXObject(vesions[i]); } catch (e) { } } } }, //向服务器发送GET请求 "get": function (url, data, callBack, type) { var xhr = this.createXHR(); var queryString = new Array(); for (var item in data) { queryString[queryString.length] = item + "=" + data[item]; } url = url + "?" + queryString.join('&'); xhr.open("get", url, true); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304) { var data; if (typeof type == "string") { if (type.toUpperCase() == "json".toUpperCase()) { data = eval("(" + xhr.responseText + ")"); } } else { data = xhr.responseText; } callBack(data, xhr.status); xhr = null; } } }; xhr.send(null); }, //向服务器送post数据; "post": function (url, data, callBack, type) { var xhr = this.createXHR(); var postData = new Array(); for (var item in data) { postData[postData.length] = item + "=" + data[item]; } postData = postData.join('&'); xhr.open("post", url, true); xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded"); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304) { if (typeof type == "string") { if (type.toUpperCase() == "json".toUpperCase()) { var data = eval("(" + xhr.responseText + ")"); } } else { data = xhr.responseText; } callBack(data, xhr.status); xhr = null; } } }; xhr.send(postData); }, //********************* //**将表单转换为一个Javascript字典 //**但是在复选框那里遇到了问题未解决; //************************ "serialize": function (form) { var parts = new Array(); var field = null; for (var i = 0, len = form.length; i < len; i++) { field = form.elements[i]; switch (field.type) { case "select-one": case "select-multiple": var optValue = new Array(); for (var j = 0; j < field.options.length; j++) { var option = field.options[j]; if (option.selected) { if (option.hasAttribute) { optValue.push((option.hasAttribute("value") ? option.value : option.text)); } else { optValue.push((opton.attributes["value"].specified ? option.value : option.text)); } } } parts.push("'" + field.name + "':'" + optValue.join(",") + "'"); break; case undefined: case "file": //文件 case "submit": //提交按钮 case "reset": //重置按钮 case "button": //按钮 break; case "radio": //单选框 case "checkbox": //这里有问题,如果有一组name相同的复选框 只能记录最后选择的值;怎么办? if (!field.checked) { break; } default: parts.push("'" + field.name + "':'" + field.value + "'"); } } return eval("({" + parts.join(",") + "})"); } } //Javascript事件辅助对象 var EventHelp = { //为元素添加事件 //element:要操作的元素 //type:事件名称 //handler:事件的处理函数 addhandler: function (element, type, handler) { if (element.addEventListener) { element.addEventListener(type, handler, false); } else if (element.attchEvent) { elemnt.attachEvent("on" + type, handler); } else { element["on" + type] = handler; } }, //*********************************** //*移除事件, //********************************** removeHandler: function (element, type, handler) { if (element.removeElementListener) { element.removeElementListener(type, handler, false) } else if (element.detachEvent) { element.detachEvent("on" + type, handler); } else { element["on" + type] = null; } }, //********************* //**获得事件对象 //************************ getEvent: function (event) { return event ? event : window.event; }, //*********************evnt //**获得事件对象 //************************ getTarget: function (event) { return event.target || event.srcElement; }, //********************* //**取消默认行为 //************************ preventDefault: function (event) { if (event.preventDefault) { event.preventDefault(); } else { event.returnValue = false; } }, //********************* //**阻止冒泡 //************************ stopPropagation: function (event) { if (event.stopPropagation) { event.stopPropagation(); } else { event.candelBubble = true; } }, //********************* //**获取相关元素 只对mouseover ,mouseout,mouseenter,mouseleave事件 //************************ getRelatedTarget: function (event) { if(event.relatedTarget){ return event.relagedTarget; }else if(event.toElement){ return event.toElement; }else if(event.fromElement) { return event.fromElement; }else{ return null; } }, getMouseDelta:function(event){ if(event.wheelDelta){ return (clent.engine.opera && client.engine.opera<9.5?-event.wheelDelta:event.wheelDelta); }else{ return -event.detail*40; } } };