Closed cornucopib closed 5 years ago
https://github.com/didi/mand-mobile/blob/dev/components/tab-bar/demo/cases/demo6.vue
这个例子比我的例子简单点。 我组件名简写了,我的场景大概是下面的样子:
<tabbar />
<swiper>
<swiper-item v-for="(item,index) in items"
:key="index">
<component
v-bind:is="tabsComponent[index]"
:title="item.label"
></component>
</swiper-item
</swiper>
tabsComponent[index],是其中的一个组件,里面有一个可手动左右滑动的轮播图。 这个时候,我必须将tabsComponent[index]中的轮播图(swiper),添加一个e.stopPropagation();
我理解你的问题可以在tabsComponent
的实现中增加一层元素拦截冒泡即可
<div @touchstart.stop @touchmove.stop @touchend.stop>
<swiper></swiper>
</div>
我理解你的问题可以在
tabsComponent
的实现中增加一层元素拦截冒泡即可<div @touchstart.stop @touchmove.stop @touchend.stop> <swiper></swiper> </div>
我建议, 你在swiper中,增加isStop属性,在swiper的touch,mouse的事件钩子方法中增加形如isPrevent的处理。这样优雅很多,你觉得呢?
Mand Mobile Version
暂无
OS Version & Browser Version
暂无
Node Version, Package Management Tool
暂无
Recurring Links
暂无
Recurring Steps
我有一个左右滑动的tabbar,其中的一个tab有一个左右滑动的swiper,我是想让swiper的视图范围可以滑动,tabbar不能左右滑动。貌似这个左右滑动的阻止应该放在swiper上面吧,不是放在swiperitem里面。这样我swiper都不能滑动了。所以是不是应该暴露个isStop属性形如isPrevent给上层使用者。
Expectant Behaviors
if (this.isPrevent) { e.preventDefault() } if (this.isStop) { //新增 e.stopPropagation(); }
Actual Behaviors
if (this.isPrevent) { e.preventDefault() }