开发者社区> 问答> 正文

“回复”按钮触摸屏笔记本鼠标点击事件无效

范例:
打开官方论坛 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事件给废了,点击没效果了

展开
收起
fireattack 2017-11-30 06:13:29 2188 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载