范例:
打开官方论坛 w w w .phpwind.net/read/3712973
点击楼主楼层左下的“回复‘按钮
正常:跳转到页面最下方回复框
错误:无法跳转,其他的回复按钮的onclick事件也不能正常触发
在global.js里有这么一段
//ios/android兼容mouse事件 by kejun https://gist.github.com/3358036
;(function ($) {
$.support.touch = 'ontouchend' in document;
if (!$.support.touch) {
return;
}
var eventMap = {
click: 'touchend',
mousedown: 'touchstart',
mouseup: 'touchend',
mousemove: 'touchmove'
};
var simulateEvent = function (eventType) {
$.event.special[eventType] = {
setup: function () {
var el = $(this);
el.bind(eventMap[eventType], $.event.special[eventType].handler);
if (this.nodeName === 'A' && eventType === 'click') {
this.addEventListener('click', function (e) {
e.preventDefault();
}, false);
(下略)
大意就是检测设备是否是触摸设备(通过最前面检测document是否有ontouchend属性,如果有就认为是触摸设备),如果是把onclick事件给禁掉(e.preventDefault()+返回false)。
但是问题是如果使用既支持触摸也支持鼠标的设备比如触摸屏笔记本,这个玩意就把鼠标onclick事件给废了,点击没效果了
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。