- 53
- 0
1.正在做app的项目,项目中有很多onclick事件,我有想法使用touch事件代替,因为有很多处需要做修改,在想能否简单的实现,在dom元素原型上绑定类似于onclick事件的实现。
如
<div id="0" onclick="openPage(id)"> </div>
变为
<div id="0" ontap="openPage(id)"> </div>
tap方法
function tap(ele, touchFn) {
var SupportsTouches = ("createTouch" in document),//判断是否支持触摸
StartEvent = SupportsTouches ? "touchstart" : "mousedown",//支持触摸式使用相应的事件替代
EndEvent = SupportsTouches ? "touchend" : "mouseup";
var startTime = null,
endTime = null;
ele.addEventListener(StartEvent, function (e) {
startTime = e.timeStamp
})
ele.addEventListener(EndEvent, function (e) {
endTime = e.timeStamp
// console.log(EndEvent+'间距='+(endTime-startTime))
if (endTime - startTime < 500) {
touchFn();
}
})
}
2.尝试了可以定义到原型上,非我所要
Object.prototype.tap1 = tap;
可以这样使用
var btn = document.getElementById('btn1');
tap1(btn, function() {
alert(1)
})
3.问,我如何绑定原型,设置公共的方法函数,可以使得在html中可以这样使用<div id="1" tap="func(id)"></div>,方便修改,或者有其他实现的方式请告知。
更新- 2018.7.19
HTMLElement.prototype.ontap = function (fn) {
if (this.getAttribute("ontap")) {
var FnStr = this.getAttribute("ontap").split('(')[0];
console.log(FnStr);
}
var ele = this;
var SupportsTouches = ("createTouch" in document),//判断是否支持触摸
StartEvent = SupportsTouches ? "touchstart" : "mousedown",//支持触摸式使用相应的事件替代
EndEvent = SupportsTouches ? "touchend" : "mouseup";
var startTime = null,
endTime = null;
ele.addEventListener(StartEvent, function (e) {
startTime = e.timeStamp
})
ele.addEventListener(EndEvent, function (e) {
endTime = e.timeStamp
// console.log(EndEvent+'间距='+(endTime-startTime))
if (endTime - startTime < 500) {
fn();
}
})
};
document.querySelector('button').ontap(function () {
alert(1)
}) 0
打赏
收藏
点击回答
网站公告
- 扫一扫访问手机版
回答动态

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器更新之后。服务器里面有部分玩家要重新创建角色是怎么回事啊?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题函数计算不同地域的是不能用内网吧?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题ARMS可以创建多个应用嘛?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题在ARMS如何申请加入公测呀?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题前端小程序接入这个arms具体是如何接入监控的,这个init方法在哪里进行添加?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器刚到期,是不是就不能再导出存档了呢?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器的游戏版本不兼容 尝试更新怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器服务器升级以后 就链接不上了,怎么办?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器转移以后服务器进不去了,怎么解决?预计能赚取 0积分收益

- 神奇的四哥:发布了悬赏问题阿里云幻兽帕鲁服务器修改参数后游戏进入不了,是什么情况?预计能赚取 0积分收益
- 回到顶部
- 回到顶部
