我看过很多朋友的文章,关于这个问题之前。例如,一个变量是用来记录什么时间
执行。觉得每次排队更累。我喜欢在选择
工具搬砖。事实上,这是很简单的
解决这个method.iscroll其实截获touchstart和touchend事件当
浏览器被点击,touchend,使用js触发元件的onclick事件(的_end
功能)。在实际
操作中,该touchend首先执行,然后一个相关
函数onClick执行。这使得点击点击两个触发器。这是一个问题不是一个问题,为什么这是一个问题是,我们要看看iscroll源代码的
方法。为了解决这一问题是拒绝第二执行功能。这是我的逻辑是什么。执行代码触发的_end功能单击事件后,我们可以
删除onclick事件绑定功能。然后在几百毫秒的时间加入事件。例如 uff1a
复制代码代码如下所示:
双击测试
治疗后/治疗后
双击测试
这是第二次在onclick相关函数删除,测试函数将不会再次触发。在接下来的时间,我们仍然可以使用onclick的内容在返回的途中我们可以使用setTimeout。
修改后的iscroll源代码(在_end功能大约550行~ 570行):
复制代码代码如下所示:
that.doubletaptimer = setTimeout(){()函数(
that.doubletaptimer = null;
最后一个被触摸的元素
目标= point.target;
而(target.nodetype!= 1)=目标target.parentnode;
如果(target.tagname!= 'select' target.tagname!=
输入的target.tagname!= 'textarea){
EV = doc.createevent('mouseevents);
Ev.initMouseEvent(听到咔哒声,真的,真的,e.view,1,
point.screenx,point.screeny,point.clientx,point.clienty,
E.ctrlKey,e.altkey,e.shiftkey,e.metakey,
0,NULL);
电动汽车_fake =真;
target.dispatchevent(EV);
新代码的以下代码***
查找事件绑定元素。
var obj = $(目标),Attr(onclick)=零元(目标):$(目标)。父母({ onclick }){ 0 };
如果(obj!= NULL){
无功clickcontent = $(obj)。Attr(onclick);
如果(clickcontent!=空(0)){
将新
属性添加到原始存储的单击函数中
$(obj)。Attr(数据clickbak
/ /改变的onclick属性的值。
$(obj)。Attr(onclick
单击以防止暴力
如果(,hashbox。长> 0){
对于(VAR _i = 0;_i < that.hashbox.length;_i + +)
{
如果(,hashbox { _i } = = $(obj)){
that.hashbox.splice(_i,1);
打破;
}
}
}
That.hashBox.push($(obj));
这_clickback();
}
}结束
}
that.options.zoom },250:0);
的_clickback功能和hashbox代码片段(前_end功能)
复制代码代码如下所示:
HashBox:{ },
单击事件对象还原
_clickback:(功能){
var =;
setTimeout(){()函数(
如果(that.hashbox.length > 0){
var obj = that.hashbox.pop();
Obj.attr(onclick
如果(that.hashbox.length > 0),_clickback();
}
},500);
}
当然,你也可以不修改iscroll源代码和使用常见的功能做的。
这是这篇文章的全部内容,我希望你能帮助你
学习使用iscroll滑动控件