事件点击iscroll触发两解

事件点击iscroll触发两解
我看过很多朋友的文章,关于这个问题之前。例如,一个变量是用来记录什么时间执行。觉得每次排队更累。我喜欢在选择工具搬砖。事实上,这是很简单的解决这个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滑动控件
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部