我有一个jquery代码,
$("a.reply").click(function() {
//code
});
第一次单击.reply类的链接时,没有任何反应。第二次单击时,单击功能内的代码可以正常工作。
使用来自mysql数据库的php在页面上插入链接。所以它没有被动态插入。
为什么会这样?任何解决方案?
BadASS代码:
$(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;
}
});
答案 0 :(得分:9)
这是一个远景,但你在运行某种跟踪脚本吗?就像webtrends或coremetrics(甚至是你自己的一些脚本,全球都在寻找所有点击)?我刚刚遇到类似的问题,其中初始点击是由coremetrics捕获的。只是一个想法。
答案 1 :(得分:1)
如果您注释掉所有代码并且在点击功能中只有一个alert("hi")
,是否还会发生这种情况?
<强>更新强>
我认为Sarfaz有正确的想法,但我会使用像这样的文档就绪函数
$(document).ready(function(){
$("a.reply").click(function() {
//code
});
});
答案 2 :(得分:0)
使用内联 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>
答案 3 :(得分:-1)
我遇到了同样的问题,我通过删除解决了我的问题:
<script src="bootstrap.js"></script>
你可以使用bootstrap.min.js