鍍金池/ 問答/HTML/ jQuery 點擊這三個tab,點擊事件不起作用

jQuery 點擊這三個tab,點擊事件不起作用

clipboard.png

<div class="mui-scroll scroll-nav">
    <div class="js-anviz-tab mui-control-item anviz-item-all" data-id="5-0" style="">All</div>
    <div class="js-anviz-tab js-sub-menu mui-control-item mui-active" data-id="17">Iris</div>
    <div class="js-anviz-tab js-sub-menu mui-control-item" data-id="11">Facial</div>
    <div class="js-anviz-tab js-sub-menu mui-control-item" data-id="5">Fingerprint</div>    
</div>
jQuery('.js-sub-menu').on('tap',function(e){
    var index = jQuery(this).index();
    var id = jQuery(this).attr('data-id');
    LevelThreeSubMenu(id);
});

點擊一次,報一次這個錯誤:

mui.min.js:8 [Intervention] Unable to preventDefault inside passive event listener due to target being treated as passive. See https://www.chromestatus.com/...

  1. @ mui.min.js:8

(anonymous) @ mui.min.js:6
(anonymous) @ mui.min.js:6
i.each @ mui.min.js:6
(anonymous) @ mui.min.js:6

clipboard.png

這到底是個什么錯誤?。吭趺唇鉀Q?

回答
編輯回答
怣人

1,這個不是錯誤,只是一個警告,并不影響代碼的執(zhí)行。
2.如果你引用的不是 jq.mobble文件, 是沒有 tap這個事件的, 請你先用click 試試
3.jq 本身不支持tap 事件, zepto.js 和touch.js才支持tap

2017年1月20日 11:29
編輯回答
孤毒

tap改成click

2017年6月19日 02:56
編輯回答
夢囈

tap是什么方法,沒見過jquery還有這種方法

2018年1月4日 08:21
編輯回答
涼心人

tap這個方法的確是沒有見過,為什么不用click呢。
你可以參考一下文檔

2017年11月14日 11:19
編輯回答
慢半拍

使用 Delegate 方法,事件處理函數(shù)綁定在根元素上, 由于事件會冒泡,用它來處理子元素上的事件,正好可以繞過passive這個鬼。
因為點擊的按鈕是可以滑動的,因此會報這個警告,這個警告在這里阻止了這個點擊事件:

    jQuery('#newSubProduct').delegate('.js-sub-menu','tap',function(e){
            e.stopPropagation();
            var id = jQuery(this).attr('data-id');
            LevelThreeSubMenu(id);
        })

解決了如上的問題!

2017年5月17日 15:13
編輯回答
憶當(dāng)年

直接用click就OK呀

2018年5月11日 11:23
編輯回答
墨染殤

語法錯了吧,tap是什么鬼

jQuery('.js-sub-menu').on('click',function(e){
    var index = jQuery(this).index();
    var id = jQuery(this).attr('data-id');
    LevelThreeSubMenu(id);
});
2017年2月21日 07:34
編輯回答
命多硬

這好像是Passive Event Listeners這個特性引起的,可以看下MDN 資料 資料

2018年4月20日 18:21