Jquery 首次单击“事件未绑定”,但在刷新页面后单击“绑定”

Jquery 首次单击“事件未绑定”,但在刷新页面后单击“绑定”,jquery,Jquery,我遇到了一个奇怪的问题,即标签的单击事件在第一次打开页面时不起作用,但在刷新同一页面后工作正常。我通过jqueryaudit检查,第一次标记没有绑定事件,但是刷新后会绑定一个click事件 代码表如下所示: <head> ... <script src="http://dev.wenba.ca/static/js/jquery.2.js?v=20150409" type="text/javascript"></script> <s

我遇到了一个奇怪的问题,即标签的单击事件在第一次打开页面时不起作用,但在刷新同一页面后工作正常。我通过jqueryaudit检查,第一次标记没有绑定事件,但是刷新后会绑定一个click事件

代码表如下所示:

<head>
    ...
    <script src="http://dev.wenba.ca/static/js/jquery.2.js?v=20150409" type="text/javascript"></script>
    <script src="http://dev.wenba.ca/static/js/jquery.form.js?v=20150409" type="text/javascript"></script>
    <script src="http://dev.wenba.ca/static/mobile/js/app.js?v=20150409" type="text/javascript"></script>
   ...
</head>
...
<div class="aw-question-detail">
...
    <a class="aw-invite-replay" href="#"><i class="icon icon-inviteask"></i> <?php _e('invite reply'); ?></a>
...
</div>
...

根据你对这个问题的评论,我相信你的问题出在HTML上,而不是脚本上。确保第一次加载页面时,
.aw invite replay
元素位于DOM中。您可以使用任何浏览器的开发工具来检查这一点


如果元素在那里,您还可以尝试将每个
脚本
标记移动到
正文的底部
,正如问题注释中所建议的那样。

将js标记移动到正文的底部时效果很好。谢谢大家。

尝试
$('.aw invite replay')。在('click',function(){//此处的其余代码;})上尝试记录
console.log($('.aw invite replay').length)就在事件绑定之前。@indubitable,谢谢您的帮助,但它不起作用。@Diego,我添加了console.log($('.aw invite replay').length);事件绑定前,第一次打开页面,结果为0,刷新后结果为1。元素似乎不是第一次创建的,但我不知道为什么将
mobile/js/app
脚本移动到身体底部会有什么作用?嗨,迭戈,我不这么认为。html代码很好。我可以在DOM中找到它。我想这可能是由推荐页面引起的。推荐人页面还包括mobile/js/app.js。当我从推荐人页面打开当前页面时。console.log的调试代码($('.aw invite replay').length);在$(文档).ready(函数()中)未被欺骗,但在“引用人”页面中被欺骗,因此结果为0。但是刷新当前页面,调试代码再次运行,结果为1。我不理解您试图解释的内容。请检查我更新的答案以获得更多选项,如果它不起作用,请尝试解释问题中的所有引用人场景。
$(document).ready(function () {
...
    $('.aw-invite-replay').click(function()
    {
        alert("click invite reply");
        if ($(this).parents('.aw-question-detail').find('.aw-invite-box').is(':visible'))
        {
            $(this).parents('.aw-question-detail').find('.aw-invite-box').hide();
            $(this).removeClass('active');
        }else
        {
            $(this).parents('.aw-question-detail').find('.aw-invite-box').show();
            $(this).addClass('active');
        }
    });
...

});