开发者社区> 问答> 正文

zepto tap方法中设置event.preventDefault 不起作用?

执行完方法之后,a标签还是跳转了。
我该如何在通过js控制。(不在html中控制)

$('.size-list').on('tap', 'li a', function(event) {
            event.preventDefault();
            $(this).addClass('active');
        });

展开
收起
a123456678 2016-03-11 18:04:39 2858 0
1 条回答
写回答
取消 提交回答
  • 阻止默认行为,不要作用在tap事件上,tap事件底层是touch相关的事件。
    应该阻止在click上,a跳转的行为应该是在click上的,因为以前是没有touch事件的,不排除以后或者有的浏览器a跳转的处理的底层是在touch事件上的(个人觉得可能性不大,跳转操作是有延时的)。

    你阻止默认行为在touch事件上,自然而然是阻止不了a跳转相关的默认行为的。

    所以,你应该调整代码为:

    $('.size-list').on('click', 'li a', function(event) {

    event.preventDefault();
    $(this).addClass('active');

    });
    多说一句,对于移动端,因为推荐使用touch相关的事件,而不是click事件。对于这种连接处理,我一般不通过href来处理,而是自定义data-href的方式来处理(前提是,需要对操作进行处理的情况哈)。

    2019-07-17 18:59:48
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

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