a标签与js的冲突

Posted 别动我的猫

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了a标签与js的冲突相关的知识,希望对你有一定的参考价值。

如上图,需要做一个页面,点击左边的标题,右边就显示左边标题下的子标题的集合,

html代码如下:

<div id="newleft">
        <ul>
            <li><a href="" class="showList" >${guideList[0].type}</a></li>
            <li><a href="" class="showList" >${guaranteeList[0].type}</a></li>
            <li><a href="" class="showList" >${membeList[0].type}</a></li>
            <li><a href="" class="showList" >${afterSalList[0].type}</a></li>
        </ul>
    </div>
        <div id="newsRight">
            <div class="showNewsList">
                <c:forEach var="news" items="${guideList}">
                    <p><a class="newInfo" href="${pageContext.request.contextPath}/static/tohelpView/1/${news.nId}">${news.title}...</a></p>
                </c:forEach>
            </div>
            <div class="showNewsList" >
        <c:forEach var="newsa" items="${guaranteeList}">
            <p><a class="newInfo" href="${pageContext.request.contextPath}/static/tohelpView/2/${newsa.nId}">${newsa.title}...</a></p>
        </c:forEach>
    </div>
    <div class="showNewsList">
        <c:forEach var="newsb" items="${membeList}">
            <p><a class="newInfo" href="${pageContext.request.contextPath}/static/tohelpView/3/${newsb.nId}">${newsb.title}...</a></p>
        </c:forEach>
    </div>
    <div class="showNewsList">
        <c:forEach var="newsc" items="${afterSalList}">
            <p><a class="newInfo" href="${pageContext.request.contextPath}/static/tohelpView/4/${newsc.nId}">${newsc.title}...</a></p>
        </c:forEach>
    </div>
</div>

 



js代码如下:
/**
 * 点击
 */
$(document).on("click",".showList",function(){
    var indexaa = 0;//在集合中的索引
    var $showList = $(".showList");//按钮集合,jQuery对象
    var $div = $("#newsRight").children(".showNewsList");//显示集合
    indexaa=$showList.index($(this));//集合中的索引
    $div.hide();
    $div.eq(indexaa).fadeIn();
});

问题:点击事件始终只显示一个相同的子标题,也就是第一个。换了好多个js写法都是那样。
后来发现是a标签的问题
<a href=""
后来改成:<a href="#" 或者<a href="javascript:void(0)"
问题就解决了,<a href="javascript:void(0)"相当于一个死链接;<a href="#" 相当于链接本页面
补充:
a标签的onclick 事件先执行, href 属性下的链接后执行(页面跳转或 javascript 伪链接),如果不想执行 href 属性下的链接,onclick 需要返回 false。


以上是关于a标签与js的冲突的主要内容,如果未能解决你的问题,请参考以下文章

FAB 的片段布局与 CoordinatorLayout 冲突

a标签调用js的几种方法

a标签调用js的几种方法

引导浮动标签与 jquery 验证标签冲突

thinkphp禁止模版标签解析

关于js----------------分享前端开发常用代码片段