使用iscroll滑动区域内的div onclick事件单击一次触发了两次

Jelf_wu 2013-08-29 04:33:54
使用iscroll滑动区域内的div onclick事件单击一次触发了两次,问题pad : 三星GT-P5200
...全文
8510 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_34932669 2016-05-09
  • 打赏
  • 举报
回复
貌似第二种没起作用啊!
prince_happy 2014-10-17
  • 打赏
  • 举报
回复
您好,最近用了iscroll ,我发现了一个问题,就是: 使用了iscroll之后,内容里面的链接,默认弹出的是弹窗,在ipad上,就无法显示链接,请问这是为什么,有解决的方法吗?万分感谢!!!!
qianqian13579 2014-05-26
  • 打赏
  • 举报
回复
第一次可以,但是刷新一次页面又开始跳转两次
森之树 2014-05-22
  • 打赏
  • 举报
回复
也用方法一解决了
angieliu110 2014-02-28
  • 打赏
  • 举报
回复
谢谢按照1方法解决了
遗忘在花开时 2013-11-13
  • 打赏
  • 举报
回复
我也遇到这样的问题,最后通过2次点击时间差来解决。(500是2次点击时间差,单位ms) 1、自己写一个fn-->myclick,然后onclick="myclick();"调用。 代码:
var t1 = null;//这个设置为全局
function myclick(){
	if (t1 == null){
		t1 = new Date().getTime();
	}else{		
		var t2 = new Date().getTime();
		if(t2 - t1 < 500){
			t1 = t2;
			return;
		}else{
			t1 = t2;
		}
	}
	/*自己的代码*/
}
2、上面的代码,也可以写在iscroll.js(4.2.5)的_end方法中,要注意var t1是全局的 3、国外论坛在iscroll.js(4.2.5)对应位置添加

topOffset: 0,
checkDOMChanges: false,   // Experimental
handleClick: true,
preventGhostClick: false, // prevent ghost clicks?防止2次点击
ghostClickTimeout: 500,   // timeout for ghost click prevention设置时间差

/**
* Prevents any real clicks.
* See preventGhostClick portion of _end().
*/
_preventRealClick: function(e) {
	if (e._fake !== true) {
		e.preventDefault();
		e.stopPropagation();
		e.stopImmediatePropagation();
		e.cancel = true;
		return false;
	}
},
_end: function (e) {......

ev._fake = true;
if (that.options.preventGhostClick) { //preventGhostClick: true,
	// prevent ghost real clicks on body
	document.body.addEventListener('click', that._preventRealClick, true);
	// until ghost click timeout expires
	setTimeout(function () {
			  document.body.removeEventListener('click', that._preventRealClick, true);
	}, that.options.ghostClickTimeout);
}
target.dispatchEvent(ev);
我用的是第1中方法,在每个点击的fn中都加入时间判断代码,这样比较繁琐,没办法,项目经理不给修改iscroll.js,建议直接在iscroll中加时间判断。希望对你有帮助
forever小菜 2013-10-09
  • 打赏
  • 举报
回复
上边是凭印象写的,很不严谨,给个链接,自己取看吧. http://www.qinsiwang.com/theme_bbs_6/136.html
forever小菜 2013-10-09
  • 打赏
  • 举报
回复
这个问题是因为iscroll在判断滑动前,阻止了click事件,然后在滑动后,对原来的click事件进行了重构,一些设备上,比如你说的三星,并没有将默认的click阻止掉.所以,出现了类似双击的现象.好了,解释到此,给出解决方法: 更改iscroll.js文件 搜索onBeforeScrollStart方法,将其中的preventDefault禁止掉 搜索_end方法,将其中模拟click事件的方法全部给注释掉. 这个方式是可以解决的,具体深入,待共同研究了.
遗忘在花开时 2013-09-27
  • 打赏
  • 举报
回复
求大牛解答啊,我也遇到这个问题
bob_chan 2013-09-22
  • 打赏
  • 举报
回复
我也遇到同样的问题了,有解决方法了吗?

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧