我正在开发一个js插件,人们可以将其嵌入到自己的网站/wordpress中。js使用ajax加载并修改dom中的一些标记(使用特定的类)。插件修改这些标记,以嵌入带有来自api的自定义pin的google地图。
我想使用一个ref链接api url和插件。但是,使用此Href意味着单击映射会重定向到API,这不是我想要的。我可以使用e.preventDefault()但它禁用了内部google地图链接(pin是指向该位置详细页面的链接,这些链接是从api加载的)。
所以我只想在不禁用子链接的情况下禁用插件容器。下面是一个示例:

<a href="link-to-the-api" class="my-plugin-class disable-me">
    <div class="google-map">
        <a href="link-to-place1" class="dont-disable-me">place 1</a>
        <a href="link-to-place2" class="dont-disable-me">place 2</a>
        <a href="link-to-place3" class="dont-disable-me">place 3</a>
    </div>
</a>
<script src="http://my-custom-map.com"></script>

编辑:我忘了提到我想使用和Href来改进API的SEO。
谢谢!

最佳答案

正如DanfromGermany所指出的,不能嵌套<a>元素。
相反,为什么不使用div?由于您似乎是通过onclick来处理对它的单击,因此可以很好地使用div。然后,您可以检查e.target || e.srcElement以查看单击是否实际位于其中一个链接上。如果是,允许事件通过。否则,使用api处理它。
最好使用data-*属性(如data-api="link-to-the-api")并访问该属性。

关于javascript - 禁用<a>标记中的href,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19294597/

10-12 00:09
查看更多