Vue怎樣給DOM 元素綁定事件
通過v-on:eventName="fnName"或者@eventName="fnName";
DOM元素使用better-scroll
對于使用了better-scroll插件的DOM元素在給其子元素綁定點擊事件時拱烁,需要添加配置項click: true;
原因
better-scroll 默認會阻止瀏覽器的原生 click 事件员辩。當設(shè)置為 true劈猪,better-scroll 會派發(fā)一個 click 事件褐澎,我們會給派發(fā)的 event 參數(shù)加一個私有屬性 _constructed薛夜,值為 true歪脏。
參考:https://ustbhuangyi.github.io/better-scroll/doc/zh-hans/options.html#click
問題描述
當頁面是處于PC調(diào)試模式時技潘,點擊事件會執(zhí)行兩次舟扎,處于移動模式則只執(zhí)行一次转培;
問題原因
在PC模式時,瀏覽器原生的click事件會執(zhí)行浆竭,而better-scroll的點擊事件也會執(zhí)行浸须,故PC模式下會執(zhí)行兩次click事件;
解決方案
在綁定的方法中將$event作為參數(shù)傳入邦泄,并在我們自己派發(fā)的事件執(zhí)行時删窒,阻止瀏覽器默認的事件執(zhí)行;
template
script
$event與瀏覽器原生的event的屬性區(qū)別
$event有一個_constructed屬性顺囊,瀏覽器原生的event對象則沒有該屬性肌索;
我們自己派發(fā)事件時$event._constructed為true;