javascript - 防止 slick.js 打开链接 onclick next
问题描述
我在我的 angularJs 网络应用程序中使用 slick.js 滑块。该插件工作正常。我有上一个和下一个分页按钮。所有漂亮的代码都在指向另一个页面的锚链接中。当我单击上一个或下一个按钮时,光滑的东西正在滑动,但链接也被打开了。因此,我想阻止在链接上设置样式的按钮单击时打开链接。
请参阅简化结构。
<a ng-href="wherever" target="_blank">
<div class="photo-box">
<div class="slick-container" slick>
<div class="item" ng-repeat="photo in item.photos">
<img ng-src="url-to-image" />
</div>
</div>
</div>
<a/>
解析代码时,按钮重新创建,如下所示:<button class="slick-next slick-arrow" aria-label="Next" type="button" style="display: inline-block;">Next</button>
如前所述,当我单击按钮时,滑块可以工作,但链接也会打开。
解决方案
您可能想监听元素click
上的事件并检查是否是,在这种情况下,调用以防止链接打开。<a>
event.target.classList.contains('slick-arrow')
true
event.preventDefault()
在您的模板中:
<a ng-href="wherever" target="_blank" (click)="handleLinkClicked($event)">
<div class="photo-box">
<div class="slick-container" slick>
<div class="item" ng-repeat="photo in item.photos">
<img ng-src="url-to-image" />
</div>
</div>
</div>
<a/>
在您的组件中:
handleLinkClicked(e: ClickEvent) {
if (e.target.classList.contains('slick-arrow')) e.preventDefault();
}
否则,您也可以尝试移动<a>
inside slick
,也许替换<div class="item" ...>
适合您的 if :
<div class="photo-box">
<div class="slick-container" slick>
<a class="item" ng-href="wherever" target="_blank" ng-repeat="photo in item.photos">
<img ng-src="url-to-image" />
</a>
</div>
</div>
推荐阅读
- javascript - How do i modify LightningChart JS point line series to achieve mentioned functionalities?
- spring-mvc - Jackson 可以使用 Spring Data Repositories 将 Id 解析为对象吗?
- apache-kafka - Too frequently rolling logs for repartition topic results in out of memory in machine running kafka
- scala - 如何使用databrick向scala(spark)中的xml标签添加属性和值
- c++ - 重置未定义行为后使用 shared_ptr 吗?
- html - 最大宽度为 768px 时如何通过 flexLayout 隐藏 Div
- python - 如何在 python 中的医学图像的 2D np.array 上实现巴特沃斯滤波器
- php - 如何在 laravel 中使用 faker 播种
- mysql - 从查询中选择
- java - Java android会话变量