javascript - zepto tap方法中设置event.preventDefault 不起作用?
天蓬老师
天蓬老师 2017-04-11 09:49:51
[JavaScript讨论组]

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

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

欢迎选择我的课程,让我们一起见证您的进步~~

全部回复(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的方式来处理(前提是,需要对操作进行处理的情况哈)。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号