js点击事件onclick第一次不触发,第二次点击才正常触发-问答-阿里云开发者社区-阿里云

开发者社区> 问答> 正文

js点击事件onclick第一次不触发,第二次点击才正常触发

a123456678 2016-07-13 17:17:28 7771
function showContent(obj) {
            $(obj).click(function() {
                $('#Notice').modal({
                    show : true
                });
                var NoticeText = $(obj).parent().find("div").text();
                $('#Notice .modal-body').text(NoticeText);
            })
        }


这是js代码,就是一个简单的点击事件

<c:forEach items="${Noticelist}" var="item">
 <li >${item.noticeTitle}
 <span style="margin-left: 15px">${item.pubTime}</span>
 <div style="display: none">${item.noticeContent}</div>
 <a href="javascript:void(0)" onclick="showContent(this)">查看详情</a>
 </li>
 </c:forEach>

这是对应的html代码,目前的情况是,刷新页面后第一次单击不触发这个点击事件,第二次单击时就正常触发了,很影响体验,js比较弱,不明白为什么会出现这种情况

JavaScript 前端开发
分享到
取消 提交回答
全部回答(1)
  • a123456678
    2019-07-17 19:55:53

    因为你第一次点击的时候是为a标签绑定了一个click事件,这个click要到第二次点击才生效。
    如果是动态绑定事件,可以用jquery的on方法。
    给a标签增加一个名为‘showModel’的class,然后用on方法就行。我习惯这样写:

    <c:forEach items="${Noticelist}" var="item">
     <li >${item.noticeTitle}
     <span style="margin-left: 15px">${item.pubTime}</span>
     <div style="display: none">${item.noticeContent}</div>
     <a class="showModel" href="javascript:void(0)">查看详情</a>
     </li>
     </c:forEach>
    
    $('body').on('click','.showModel',function(){
        $('#Notice').modal({
            show : true
        });
        var NoticeText = $(this).parent().find("div").text();
        $('#Notice .modal-body').text(NoticeText);    
    })
    0 0
开发与运维
使用钉钉扫一扫加入圈子
+ 订阅

集结各类场景实战经验,助你开发运维畅行无忧

推荐文章
相似问题
推荐课程