| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479 | 
							- //#region 浏览器兼容使用
 
- /*
 
- 设置兼容性的写法 ie里面有innerText,outerHTML,而HTML5没有这些属性,为了使得TML5兼容ie特性,写了如下兼容js,HTML5也在逐步形成上诉函数。
 
- */
 
- Namespace.register("U.UF.CP"); //C是compatible兼容的简写
 
- //通过修改浏览器内置属性 设置兼容,添加兼容,此兼容模块兼容ie6以上,firefox,safiry,chrome
 
- /**
 
- * 滚轮事件兼容
 
- *
 
- * @param  {function} fun 滚动时触发的函数
 
- */
 
- U.UF.CP.wheel = function (fun) {//onwheel支持所有html5浏览器  onmousewheel 支持所有非firefox的浏览器   DOMMouseScroll支持firefox浏览器
 
-     this.onwheel = fun; //onwheel 事件在鼠标滚轮在元素上下滚动时触发
 
- }
 
- /**
 
- * 滚轮事件兼容
 
- */
 
- U.UF.CP.wheelGet = function () {
 
-     return this.onwheel; //onwheel 事件在鼠标滚轮在元素上下滚动时触发
 
- }
 
- /**
 
- * 打印标签之间的纯文本信息
 
- *
 
- * @param  {string} str 需要打印的元素的内容
 
- */
 
- U.UF.CP.setInnerText = function (str) {//参数str  txt是内容   
 
-     this.textContent = str; //获得元素的文本内容 = str
 
- }
 
- /**
 
- * innerText与textContent的兼容处理
 
- */
 
- U.UF.CP.setInnerTextGet = function () {
 
-     return this.textContent; //获得元素的文本内容
 
- }
 
- /**
 
- * 打印开始和结束标签之间的HTML
 
- *
 
- * @param  {string} str 字符串
 
- */
 
- U.UF.CP.outerHtml = function (str) {
 
-     var i,
 
-         _this = U.selectEl(this), //i为变量
 
-         _div = $$("div", { "innerHTML": str }).childNodes, //创建一个div 内容为str
 
-         _create = $$("frag"); //  createDocumentFragment:创建一个 documentFragment 
 
-     //循环插入
 
-     for (i = 0; i < _div.length; i++) {//
 
-         _create.appendChild(_div[i]); //在_create添加_div
 
-     }
 
-     _create.insertBefore(_create, this); //向列表中插入一个项目
 
-     _this.remove(); //拷贝并删除本身
 
- }
 
- /**
 
- * 打印开始和结束标签之间的HTML
 
- *
 
- * 给元素原型添加一个outerHtml方法
 
- */
 
- U.UF.CP.outerHtmlGet = function () {
 
-     var _copy = this.cloneNode(true); //克隆源元素
 
-     var _div = $$("div", {}); //创建一个临时div,用于把克隆元素放入
 
-     _div.appendChild(_copy); //div里面插入克隆元素
 
-     return _div.innerHTML; /*如果不支持就使用innerhtml插入*/
 
- }
 
- /**
 
- * 返回了元素上的样式表
 
- *
 
- * 给元素原型添加一个currentStyle方法
 
- */
 
- U.UF.CP.getStyleGet = function () {
 
-     return getComputedStyle(this, false); //返回的元素样式的属性
 
- }
 
- /**
 
- * 可以将鼠标事件锁定在指定的元素上
 
- *
 
- * 给元素原型添加一个setCaptureGet方法
 
- */
 
- U.UF.CP.setCapture = function () {
 
-     return function () { //可以将鼠标事件锁定在指定的元素上
 
-         window.captureEvents(Event.MOUSEMOVE | Event.MOUSEUP);
 
-     }
 
- }
 
- /**
 
- * 释放鼠标捕获
 
- * 给元素原型添加一个releaseCaptureGet方法
 
- */
 
- U.UF.CP.releaseCapture = function () {//兼容火狐
 
-     return function () {
 
-         window.releaseEvents(Event.MOUSEMOVE | Event.MOUSEUP)
 
-     } //释放鼠标捕获
 
- }
 
- /**
 
- * 浏览器窗口被调整尺寸时发生
 
- * @param  {function} fun 被调整的对象
 
- */
 
- U.UF.CP.onresize = function (fun) {
 
-     if (this.tagName) {//存在元素的标签名
 
-         //设置Set事件
 
-         var _position,
 
-             _sizeelement = this.__SizeElement__; //自定义 __SizeElement__ 元素大小
 
-         if (!_sizeelement || U.selectEl(_sizeelement).Parent() != this && fun) {//如果不存在SizeElement或者SizeElement的父级等于他本身并且存在el 往下执行
 
-             _position = U.UF.EL.getStyle(this, "position");
 
-             if (_position == "" || _position == "static") { this.style.position = "relative"; }
 
-             _sizeelement = this.__SizeElement__ = $$("object", {//创建一个元素
 
-                 "onload": function () {
 
-                     if (fun) {
 
-                         _sizeelement.contentDocument.defaultView.onresize = function () {
 
-                             fun();
 
-                         }
 
-                         // U.UF.C.apply(retElement, [[执行函数的事件]])
 
-                         //retElement 将要绑定事件与属性的对象,如没有,可以传递null或者this,此处还需要优化,很多地方都会调用此函数,会导致速度降低。
 
-                         //arr 时间和属性组成的参数数组 
 
-                     }
 
-                     else {
 
-                         try {//try...catch语句将能引发错误的代码放在try块中,并且对应一个响应,然后有异常被抛出。
 
-                             delete this.__SizeElement__;
 
-                         } catch (e) { }
 
-                     }
 
-                 }, //当触发onload时执行此函数
 
-                 "type": "text/html",
 
-                 "data": "about:blank",
 
-                 "style": {
 
-                     "cssText": "display:block;position:absolute;top:0;left:0;height:100%;width:100%;overflow:hidden;pointer-events:none;z-index:-1;visibility:hidden;margin:0;padding:0;"
 
-                 }
 
-             }, this);
 
-         }
 
-         else {//如果上述条件不成立则直接往下执行
 
-             if (fun) {
 
-                 _sizeelement.contentDocument.defaultView.onresize = function () { fun(); }
 
-             }
 
-             else {
 
-                 try {//try...catch语句将能引发错误的代码放在try块中,并且对应一个响应,然后有异常被抛出。
 
-                     delete this.__SizeElement__;
 
-                 } catch (e) { }
 
-             }
 
-         }
 
-     }
 
- }
 
- /**
 
- * 浏览器窗口被调整尺寸时发生
 
- *
 
- * 给元素原型添加一个onresize方法
 
- */
 
- U.UF.CP.onresizeGet = function () {
 
-     try { //try...catch语句将能引发错误的代码放在try块中,并且对应一个响应,然后有异常被抛出。
 
-         return this.__SizeElement__.contentDocument.defaultView.onresize;
 
-     }
 
-     catch (e) {
 
-         return null;
 
-     }
 
- }
 
- /**
 
- * 代表事件的状态
 
- * 比如事件在其中发生的元素、键盘按键的状态、鼠标的位置、鼠标按钮的状态。
 
- */
 
- U.UF.CP.eventGet = function () {//arguments.callee ->指向参数arguments对象的函数
 
-     var _currentfun = arguments.callee;
 
-     while (_currentfun.caller) { //一直往上寻找直到 寻找到顶层作用域 返回null 再往下执行
 
-         _currentfun = _UDE.caller;
 
-     }
 
-     if (_currentfun.arguments[0]) { //对于火狐的兼容
 
-         return _currentfun.arguments[0];
 
-     }
 
-     else {
 
-         return null; //返回null
 
-     }
 
- }
 
- /**
 
- * 捕获当前事件作用的对象的兼容处理
 
- */
 
- U.UF.CP.targetGet = function () {//支持firefox
 
-     return event.target; //返回事件的目标节点(触发该事件的节点)
 
- }
 
- /**
 
- * 获得键盘的按键码的兼容处理
 
- */
 
- U.UF.CP.keyCodeGet = function () {
 
-     return event.which; //获取按下的键盘按键Unicode值
 
- }
 
- /**
 
- * onreadystatechange加载设置事件的兼容
 
- */
 
- U.UF.CP.onreadystatechangeGet = function () {
 
-     return this.onload; //当不兼容onreadystatechange的浏览器设置onreadystatechange的时候那么就相当于设置了onload
 
- }
 
- /**
 
- * onreadystatechange加载获取事件的兼容
 
- */
 
- U.UF.CP.onreadystatechange = function (cb) {
 
-     this.onload = cb; //当不兼容onreadystatechange的浏览器获取onreadystatechange的时候那么就相当于获取onload
 
- }
 
- /**
 
- * 特定事件返回对象在指定坐标下的位置。 outside 说明制定的位置在元素之外
 
- */
 
- U.UF.CP.componentFromPoint = function () {
 
-     return function () {
 
-         var _position = U.UF.EL.getMousePosition();
 
-         var _elinfo = U.UF.EL.getElementInfo(this);
 
-         if ((_position["X"] > _elinfo["CW"] + _elinfo["TX"]) || (_position["Y"] > _elinfo["CH"] + _elinfo["TY"])) {
 
-             return "outside";
 
-         }
 
-         return "";
 
-     }
 
- }
 
- /**
 
- * 在浏览器初始化的时候执行这个函数,给浏览器的兼容属性添加方法
 
- */
 
- U.UF.CP.init = function () {
 
-     //如果是html5浏览器,则执行判断内的内容,ie则不用进入下面内容。
 
-     if (window.HTMLElement) {
 
-         //注:   HTMLElement.prototype.__defineGetter__(event, fucntion)的作用是给指定的event设置得到的回调函数,如event=onmousewheel的时候,当我们给页面上任意的元素设置事件的时候会触发指定fucntion
 
-         //当浏览器不支持onmousewheel滚轮事件的时候,给浏览器的全局HTMLElement设置滚轮事件,让页面上所有的元素都有onmousewheel这个事件
 
-         //由于firefox不支持onmousewheel,这里利用__defineGetter__和__defineSetter__给HTMLElement绑定onmousewheel这个事件
 
-         /*检测浏览器是否支持onmousewheel这个方法,Safiri,火狐没有这个方法*/
 
-         if (!("onmousewheel" in HTMLElement.prototype)) {
 
-             //IE里面或者safiri的处理方法?
 
-             if ("onwheel" in HTMLElement.prototype) {
 
-                 //滚轮事件兼容处理,分为get获取和set设置处理
 
-                 HTMLElement.prototype.__defineGetter__("onmousewheel", U.UF.CP.wheelGet); //元素onmousewheel的get处理
 
-                 HTMLElement.prototype.__defineSetter__("onmousewheel", U.UF.CP.wheel); //元素onmousewheel的set处理
 
-             }
 
-             //火狐的滚动处理
 
-             else {
 
-                 window.addEventListener("DOMMouseScroll", function (e) {
 
-                     //监控Scroll事件
 
-                     var _fun = null,
 
-                     _currentevent = e.srcElement; //e.srcElement当前事件的源
 
-                     do {
 
-                         _fun = U.selectEl(_currentevent).attr("onmousewheel") || _currentevent.onmousewheel;
 
-                         _currentevent = U.selectEl(_currentevent).Parent();
 
-                     }
 
-                     while (!(_fun || !_currentevent)); //冒泡的顶部获取
 
-                     if (_fun) {//如果存在_fun
 
-                         if (U.UF.C.isString(_fun)) {//判断_fun 是否为字符串
 
-                             _currentevent.onmousewheel = new Function(_fun);
 
-                         }
 
-                         U.UF.EV.stopDefault();    //阻止页面固定事件
 
-                         //异步执行 解决卡死的bug
 
-                         setTimeout(function () {
 
-                             obj.call(this, e);
 
-                         }, 0);
 
-                     }
 
-                 }, false);
 
-             }
 
-         }
 
-         //当浏览器不支持onreadystatechange的时候,给浏览器的全局HTMLElement设置onload,让页面上所有的元素都有onreadystatechange这个事件
 
-         //由于chrome和friefox不支持onreadystatechange,这里利用__defineGetter__和__defineSetter__给HTMLElement绑定onreadystatechange这个事件
 
-         //        if (!("onreadystatechange" in HTMLElement.prototype)) {
 
-         //            HTMLElement.prototype.__defineGetter__("onreadystatechange", U.UF.CP.onreadystatechangeGet); //onreadystatechange加载设置事件的兼容
 
-         //            HTMLElement.prototype.__defineSetter__("onreadystatechange", U.UF.CP.onreadystatechange); //onreadystatechange加载设置事件的兼容
 
-         //        }
 
-         //当浏览器不支持innerText的时候,给浏览器的全局HTMLElement设置textContent,让页面上所有的元素都有innerText这个事件
 
-         //由于低版本的firefox不支持innerText,这里利用__defineGetter__和__defineSetter__给HTMLElement绑定innerText这个事件
 
-         if (!("innerText" in HTMLElement.prototype)) {/*检测浏览器是否支持innerText这个方法*/
 
-             HTMLElement.prototype.__defineGetter__("innerText", U.UF.CP.setInnerTextGet); //给元素原型添加一个innerText事件并且绑定U.UF.CP.setInnerText
 
-             HTMLElement.prototype.__defineSetter__("innerText", U.UF.CP.setInnerText);
 
-         }
 
-         //当浏览器不支持outerHTML的时候,给浏览器的全局HTMLElement设置innerHTML,让页面上所有的元素都有outerHTML这个事件
 
-         //由于低版本的firefox(FF7-)不支持outerHTML,这里利用__defineGetter__和__defineSetter__给HTMLElement绑定outerHTML这个事件
 
-         if (!("outerHTML" in HTMLElement.prototype)) {/*检测浏览器是否支持outerHTML这个方法*/
 
-             HTMLElement.prototype.__defineGetter__("outerHTML", U.UF.CP.outerHtmlGet); //给元素原型添加一个outerHtml事件并且绑定U.UF.CP.outerHtml
 
-             HTMLElement.prototype.__defineSetter__("outerHTML", U.UF.CP.outerHtml);
 
-         }
 
-         //当浏览器不支持currentStyle的时候,给浏览器的全局HTMLElement设置getComputedStyle事件,让页面上所有的元素都有currentStyle这个事件
 
-         //由于低版本的firefox不支持currentStyle,这里利用__defineGetter__给HTMLElement绑定currentStyle这个事件
 
-         if (!("currentStyle" in HTMLElement.prototype)) {/*检测浏览器是否支持currentStyle这个方法*/
 
-             HTMLElement.prototype.__defineGetter__("currentStyle", U.UF.CP.getStyleGet); //给元素原型添加一个currentStyle事件并且绑定U.UF.CP.getStyle    
 
-         }
 
-         //当浏览器不支持setCapture的时候,给浏览器的全局HTMLElement设置captureEvents事件,让页面上所有的元素都有setCapture这个事件
 
-         //由于firefox不支持setCapture,这里利用__defineGetter__给HTMLElement绑定setCapture这个事件
 
-         if (!("setCapture" in HTMLElement.prototype)) {
 
-             HTMLElement.prototype.__defineGetter__("setCapture", U.UF.CP.setCapture); //给元素原型添加一个setCapture事件并且绑定U.UF.CP.setCapture
 
-         }
 
-         //当浏览器不支持releaseCapture的时候,给浏览器的全局HTMLElement设置releaseEvents事件,让页面上所有的元素都有releaseCapture这个事件
 
-         //由于firefox不支持releaseCapture,这里利用__defineGetter__给HTMLElement绑定releaseCapture这个事件
 
-         if (!("releaseCapture" in HTMLElement.prototype)) {
 
-             HTMLElement.prototype.__defineGetter__("releaseCapture", U.UF.CP.releaseCapture); //给元素原型添加一个releaseCapture事件并且绑定U.UF.CP.releaseCapture
 
-         }
 
-         //当浏览器不支持onresize的时候,给浏览器的全局HTMLElement设置focus,让页面上所有的元素都有onresize这个事件
 
-         //由于低版本的firefox不支持onresize,这里利用__defineGetter__和__defineSetter__给HTMLElement绑定onresize这个事件
 
-         if (!("onresize" in HTMLElement.prototype) || !(U.UF.CI.getBrowser().browser == "msie")) { /*检测浏览器是否支持onfocus事件*/
 
-             HTMLElement.prototype.__defineGetter__("onresize", U.UF.CP.onresizeGet); //给元素原型添加一个onresize事件并且绑定U.UF.CP.onresize
 
-             HTMLElement.prototype.__defineSetter__("onresize", U.UF.CP.onresize);
 
-         }
 
-         /*检测浏览器是否支持componentFromPoint事件*/
 
-         if (!("componentFromPoint" in HTMLElement.prototype)) {
 
-             HTMLElement.prototype.__defineGetter__("componentFromPoint", U.UF.CP.componentFromPoint); //当获取元素的componentFromPoint时候出发该函数
 
-         }
 
-         //当浏览器不支持event的时候,给浏览器的全局HTMLElement设置releaseEvents,让页面上所有的元素都有event这个事件
 
-         //由于firefox不支持event,这里利用__defineGetter__给HTMLElement绑定event这个事件
 
-         if (!("event" in window.constructor.prototype)) { /*检测浏览器是否支持event事件*/
 
-             window.constructor.prototype.__defineGetter__("event", U.UF.CP.eventGet); //给元素原型添加一个event事件并且绑定U.UF.CP.event
 
-         }
 
-         //给window.event添加兼容属性方法
 
-         if (window.Event.prototype) {
 
-             //当浏览器不支持srcElement的时候,给浏览器的全局HTMLElement设置target事件,让页面上所有的元素都有srcElement这个事件
 
-             //由于firefox不支持srcElement,这里利用__defineGetter__给HTMLElement绑定srcElement这个事件
 
-             if (!("srcElement" in window.Event.prototype)) {/*检测浏览器是否支持srcElement事件*/
 
-                 window.Event.__defineGetter__("target", U.UF.CP.targetGet); //给元素原型添加一个target事件并且绑定U.UF.CP.target
 
-             }
 
-             //当浏览器不支持keyCode的时候,给浏览器的全局HTMLElement设置which事件,让页面上所有的元素都有keyCode这个事件
 
-             //由于firefox不支持keyCode,这里利用__defineGetter__给HTMLElement绑定keyCode这个事件
 
-             if (!("keyCode" in window.Event.prototype) && window.Event.__defineGetter__) {
 
-                 window.Event.__defineGetter__("keyCode", U.UF.CP.keyCodeGet); //给元素原型添加一个keyCode事件并且绑定U.UF.CP.keyCheck
 
-             }
 
-         }
 
-     }
 
- }
 
- //#region querySelector 兼容处理
 
- U.UF.C.style; //防止选择器创建多个样式style
 
- /**
 
- * querySelectorAll 兼容
 
- *
 
- * @param  {string} 搜索的内容
 
- * @param  {element} 搜索的元素区域
 
- */
 
- document.querySelectorAll = document.querySelectorAll || function (str, el) {
 
-     var _addstyle = U.UF.C.style, //判断是否已经添加了上style识别样式
 
-         _returnarr = [], //创建一个空的数组
 
-         _firstchild = document.documentElement.firstChild, //document.documentElement的第一个子元素
 
-         _arr = (el || document).all, //搜索区域
 
-         i = _arr.length; //_arr的长度
 
-     //添加的style link
 
-     try {
 
-         _addstyle.styleSheet.cssText = str + "{q:1}";
 
-     }
 
-     catch (e) {
 
-         U.UF.C.style = $$("style", {//U.UF.C.style:防止选择器创建多个样式style
 
-             "type": "text/css",
 
-             "styleSheet": {
 
-                 "cssText": str + "{q:1}"
 
-             }
 
-         }, _firstchild);
 
-     }
 
-     //全局筛选
 
-     while (i--) {
 
-         if (_arr[i].currentStyle.q) {
 
-             _returnarr.unshift(_arr[i]);
 
-         }
 
-     }
 
-     return _returnarr;
 
- };
 
- /**
 
- * querySelector 兼容
 
- *
 
- * @param  {number} 搜索的内容
 
- */
 
- document.querySelector = document.querySelector || function (num) {//返回文档中匹配指定 CSS 选择器的一个元素
 
-     var _num = document.querySelectorAll(num);
 
-     if (_num.length) {//如果_num存在
 
-         return _num[0]; //返回_num[0]
 
-     }
 
-     else {//不存在
 
-         return null; //返回null
 
-     }
 
- };
 
- /**
 
- * 选择元素区域 自定义搜索元素选择函数
 
- *
 
- * @param  {string} 搜索的内容
 
- * @param  {object} 搜索的元素
 
- */
 
- U.UF.CP.selectorElement = function (str, el) {
 
-     var _ishasid = (el.id === "" && el != document), //判断是否支持选择器
 
-         _query = $$("div").querySelectorAll;
 
-     if (_ishasid) {//如果支持
 
-         el.id = el.uniqueID; //uniqueID : 绝对唯一地标识一个 HTML 元素
 
-     }
 
-     try { //尝试执行代码块
 
-         if (_query) {//如果浏览器支持querySelectorAll ,那么直接使用浏览器的
 
-             return (el || document).querySelectorAll((el.id ? ("#" + el.id + " ") : " ") + str, el);
 
-         }
 
-         //否则调用上面自定义的方法
 
-         else {
 
-             return document.querySelectorAll((el.id ? ("#" + el.id + " ") : " ") + str, el);
 
-         }
 
-     }
 
-     catch (e) {//捕获错误的代码块
 
-         return null;
 
-     }
 
-     finally {//无论 try / catch 结果如何都会执行的代码块
 
-         if (_ishasid) {
 
-             el.id = "";
 
-         }
 
-     }
 
- }
 
- //#endregion
 
- //#region 手机兼容处理,只要引用了uform框架,会自动使手机在滑动的过程中不会触发点击事件
 
- /**
 
- *  手机点击处理
 
- */
 
- U.UF.CP.touch = function () {
 
-     //这里有个bug如果多次引用uform的时候这里的事件会注册监视多次
 
-     if (U.UF.C.touchstart) {
 
-         U.UF.EV.delElementEvent("touchstart", document, U.UF.C.touchstart, true);
 
-     }
 
-     //监视touchstart,注册函数事件  U.UF.EV.addElementEvent(事件名称,添加事件的元素,事件触发后调用的函数,指定事件是否在捕获或冒泡阶段执行)
 
-     U.UF.EV.addElementEvent("touchstart", document, U.UF.C.touchstart, true);
 
- }
 
- /**
 
- *  touchstart处理
 
- */
 
- U.UF.C.touchstart = function () {
 
-     var i,
 
-         _eventsrc = event.srcElement; //时间触发的元素
 
-     //默认触发的时候是没有移动的状态
 
-     U.UF.C.ismove = null;
 
-     //停止事件分发
 
-     U.UF.EV.stopBubble();
 
-     //移除start事件事件取消,防止下面直接出发touch事件的时候给重复监听
 
-     U.UF.EV.delElementEvent("touchstart", document, U.UF.C.touchstart, true);
 
-     //直接执行touchstart事件
 
-     U.UF.EV.simulatePhoneTouch(_eventsrc, "touchstart");
 
-     //取消后重新添加事件进去 
 
-     U.UF.EV.addElementEvent("touchstart", document, U.UF.C.touchstart, true);
 
-     //监视在鼠标移动的处理
 
-     U.UF.EV.addElementEvent("touchmove", document, U.UF.C.touchmove);
 
-     //end事件等待
 
-     U.UF.EV.addElementEvent("touchend", document, U.UF.C.touchend, true);
 
- }
 
- /**
 
- *  touchmove处理
 
- */
 
- U.UF.C.touchmove = function () { //移动监视
 
-     U.UF.C.ismove = true; //设置鼠标在移动
 
-     U.UF.EV.delElementEvent("touchmove", document, U.UF.C.touchmove); //移除鼠标移动事件
 
-     U.UF.EV.simulatePhoneTouch(event.srcElement, "touchmove"); //执行事件touch移动的处理
 
-     U.UF.EV.stopBubble(); //停止冒泡处理
 
- }
 
- /**
 
- *  touchend处理
 
- */
 
- U.UF.C.touchend = function () {
 
-     U.UF.EV.delElementEvent("touchend", document, U.UF.C.touchend, true); //touchend抓取成功后的处理
 
-     U.UF.EV.stopBubble(); //移除事件
 
-     //如果用户的touchstart后没有处理touchmove事件,那么允许用户出发touchend事件
 
-     if (!U.UF.C.ismove) {
 
-         U.UF.EV.simulatePhoneTouch(event.srcElement, "touchend"); //触发touchend事件
 
-     }
 
- }
 
- //#endregion
 
 
  |