Html Jquery单击事件在第一次单击时不触发,但在第二次单击时触发,为什么?

Html Jquery单击事件在第一次单击时不触发,但在第二次单击时触发,为什么?,html,jquery,event-handling,jquery-events,Html,Jquery,Event Handling,Jquery Events,我有一个jQuery代码 $("a.reply").click(function() { //code }); 当我第一次单击带有.reply类的链接时,什么也没有发生。第二次单击时,click函数中的代码起作用 该链接是使用PHP从mysql数据库插入到页面上的。所以它不是动态插入的 为什么会这样?有解决办法吗 坏蛋代码: $(function(){ //TextArea Max Width var textmaxwidth = $('#wrapper').css('wi

我有一个jQuery代码

$("a.reply").click(function() {
//code
});
当我第一次单击带有
.reply
类的链接时,什么也没有发生。第二次单击时,click函数中的代码起作用

该链接是使用PHP从mysql数据库插入到页面上的。所以它不是动态插入的

为什么会这样?有解决办法吗

坏蛋代码:

$(function(){
//TextArea Max Width
var textmaxwidth = $('#wrapper').css('width');
//Initialize Focus ids To Different Initially
var oldcommentid = -1;
var newcommentid = -2;
//End Of initialization

$("a.reply").click(function() {
        newcommentid = $(this).attr('id');
        if (newcommentid == oldcommentid)
        {
        oldcommentid=newcommentid;
        $("#comment_body").focus();
        }
        else
        {
        $('#comment_form').fadeOut(0, function(){$(this).remove()});
        var commetformcode = $('<form id="comment_form" action="post_comment.php" method="post"><textarea name="comment_body" id="comment_body" class="added_comment_body" rows="2"></textarea> <input type="hidden" name="parent_id" id="parent_id" value="0"/> <div id="submit_button"> <input type="submit" value="Share"/><input type="button" id="cancelbutton" value="Cancel"/></div></form>');
        commetformcode.hide().insertAfter($(this)).fadeIn(300);
        //
        var id = $(this).attr("id");
        $("#parent_id").attr("value", id);
        oldcommentid=newcommentid;
        //dynamicformcreation function
        dynarun();
        //
        }



        return false;
    });

        dynarun();
        
        function dynarun()
        {
        //Form Re-Run Functions
        $('#comment_body').elastic();
        texthover();
        $("#comment_form input, select, button").uniform();
        textareasizer();
        $("#comment_body").focus();
        $("abbr.timestamp").timeago();
        return false;
        }
        
        //TextArea Resizer Function
        function textareasizer(){$("#comment_body").css('max-width', textmaxwidth);return false;}
        
        //Other Miscellaneous Functions
        $('.comment-holder').hover(
        function(event) {
            $(this).addClass('highlight');
        },
        function(event) {
            $('.comment-holder').removeClass('highlight');
        }
        );

        function texthover()
        {
        $('.added_comment_body').hover(
            function(event) {
                $(this).parent().parent().addClass('highlight');
            },
            function(event) {
                $('.comment-holder').removeClass('highlight');
            }
        );
        return false;
        }
});
$(函数(){
//文本区域最大宽度
var textmaxwidth=$('#wrapper').css('width');
//将焦点ID初始化为不同的初始值
var oldcommentid=-1;
var newcommentid=-2;
//初始化结束
$(“a.reply”)。单击(函数(){
newcommentid=$(this.attr('id');
if(newcommentid==oldcomentId)
{
oldcommentid=newcommentid;
$(“#注释_body”).focus();
}
其他的
{
$('#comment_form').fadeOut(0,function(){$(this.remove()});
var commetformcode=$('');
commetformcode.hide().insertAfter($(this)).fadeIn(300);
//
var id=$(this.attr(“id”);
$(“父项id”).attr(“值”,id);
oldcommentid=newcommentid;
//动态FORM创建函数
dynarun();
//
}
返回false;
});
dynarun();
函数dynarun()
{
//窗体重新运行函数
$(“#注释_body”).elastic();
texthover();
$(“#注释_表单输入,选择,按钮”).uniform();
textareasizer();
$(“#注释_body”).focus();
$(“缩写为timestamp”).timeago();
返回false;
}
//TextArea Resizer函数
函数textareasizer(){$(“#comment_body”).css('max-width',textmaxwidth);返回false;}
//其他杂项职能
$('.comment holder')。悬停(
功能(事件){
$(this.addClass('highlight');
},
功能(事件){
$('.comment holder').removeClass('highlight');
}
);
函数texthover()
{
$('.添加了注释\正文')。悬停(
功能(事件){
$(this.parent().parent().addClass('highlight');
},
功能(事件){
$('.comment holder').removeClass('highlight');
}
);
返回false;
}
});

如果您注释掉所有代码,只是在单击功能中有一个
警报(“hi”)
,这种情况还会发生吗

更新

我认为Sarfaz的想法是正确的,但我会像这样使用documentready函数

$(document).ready(function(){
  $("a.reply").click(function() {
    //code
  });
});

这是一个长镜头,但是你正在运行某种跟踪脚本吗?像webtrends或coremetrics(甚至你自己的一些脚本,在全球寻找所有点击)?不久前我遇到了一个类似的问题,coremetrics捕获了最初的点击。只是想一想。

我遇到了同样的问题,我通过删除以下内容解决了问题:

<script src="bootstrap.js"></script>


您可以使用bootstrap.min.js

使用内联CSS隐藏div,并使用js/jQuery显示。这样,Jquery单击事件将在第一次单击时触发

     <div class="about-block">
      <div class="title">About us</div>
        <div class="" id="content-text" style="display:none;">
            <p>Show me.</p>
        </div>
    </div>

        <script>     
         var x = document.getElementById("content-text");
             jQuery( '.about-block' ).click(function() {
               if (x.style.display === "none") {
                  x.style.display = "block";             

                } else {
                  x.style.display = "none";
                }
             });
      </script>

关于我们
给我看看

var x=document.getElementById(“内容文本”); jQuery('.about block')。单击(函数(){ 如果(x.style.display==“无”){ x、 style.display=“block”; }否则{ x、 style.display=“无”; } });
此处需要更多代码,请发布相关生成的HTML。我的第一个想法是它来自。你们能发布你们的HTML吗?看起来问题出在别处了。如果你将click函数中的代码替换为alert(1)是否有效?@the_archer:你在第一次单击时有错误吗?你能用firebug或按FF中的Cntr+Shift+J检查一下吗?第一次单击时,控制台中只会显示:失去焦点:收到焦点:不,即使文档已准备就绪,并且只有一个简单的带有警报的单击功能不起作用。这种方法基本上是相同的。如果它第二次起作用,document.ready在这里可能没有帮助,尽管使用它是一种很好的做法{应该是文档准备就绪的速记?:嗯…好主意。我有大量的脚本在后台工作。要禁用它们并查看。你搞定了,伙计。我使用了一个表单样式脚本。删除脚本就可以了。现在一切都正常了。所讨论的脚本是jquery统一的。我希望我能踢那个开发loper in the ass.@yoda这是一个常见的问题,在网络上几乎没有解释。你简直不敢相信我坐在这里研究和拔头发的时间有多长。@True North Creative再次感谢你…你的猜测没有那么长吧…:p