gpt4 book ai didi

javascript - 需要 JQuery 停止重复单击的每个按钮

转载 作者:太空宇宙 更新时间:2023-11-04 05:09:38 24 4
gpt4 key购买 nike

这些功能的基础是有效的,但是对于每一个被点击的取消按钮,下一个按钮都会增加点击次数。例如,如果用户单击取消按钮一次,然后下一次单击具有不同 id 的不同按钮,firebug 会显示包含表单 (page2) 的页面加载多次,而不是一次。这都是动态生成的,因此父页面上最多可能有 10 个这样的 div。应该发生的是:

  1. 用户点击父页面上的只读文本框
  2. onfocus 清空父页面的 div 并加载子页面3.子页面的表单现在在只读的文本框空间中
  3. 用户提交评论或取消
  4. 任一操作都应将只读文本框放回页面中(到目前为止,这一切都有效)
  5. 当按下另一个 div 发表评论时,该页面应该只加载一次,而不是点击前面按钮的次数。

在第一页我有:

<head>
<script type="text/javascript">
$(document).ready(function(){
var ajaxInProgress = false;
$(function(){
if (ajaxInProgress) return;
$('.ce').focus(function(){
var cid = this.id;
$('#comfield'+cid).empty();
$('#comfield'+cid).load('content_comment.php?id=<%=intmemberid%>&cid=' + cid);
});
});
</script>
</head>
<body>

<div id="comform"
<div id="comfield2">
<input class="ce" id="2" type="text" value="Write a comment..." readonly="readonly" />
</div>
</div>
<div id="comdata2"></div>

<div id="comform"
<div id="comfield3">
<input class="ce" id="3" type="text" value="Write a comment..." readonly="readonly" />
</div>
</div>
<div id="comdata3"></div>

</body>

在第2页我有

<script type="text/javascript">
$(document).ready(function() {

document.commentform2.comment.focus();

$("#cancelcomment2").click(function(){
$('#comfield2').empty();
$('#comfield2').html('<input class="ce" id="2" type="text" value="Write a comment..." readonly="readonly" />');
var ajaxInProgress = false;
$(function(){
$('.ce').focus(function(){
if (ajaxInProgress) return;
var cid = this.id;
$('#comfield'+cid).empty();
$('#comfield'+cid).load('content_comment.php?id=55&cid=' + cid);
});
});
});

$("#submitcomment").click(function(){
$('#formcomment').ajaxForm(function (data, textStatus){
$('#formcomment').clearForm();
$('#comfield2').empty();
$('#comfield2').html('<input class="ce" id="2" type="text" value="Write a comment..." readonly="readonly" />');
$('#comdata2').append(data).fadeIn(700);
var ajaxInProgress = false;
$(function(){
if (ajaxInProgress) return;
$('.ce').focus(function(){
var cid = this.id;
$('#comfield'+cid).empty();
$('#comfield'+cid).load('content_comment.php?id=55&cid=' + cid);
});
});
});
});

});
</script>

<form id="formcomment">
<textarea id="commenttext2>" name="comment" class="commentarea"></textarea>
<input type="submit" id="submitcomment" value="comment />
<button id="cancelcomment2">Cancel</button>
</form>

最佳答案

这可能不是“最佳”方法,但它会起作用。

替换所有出现的

$('.ce').focus(function(){

$('.ce').unbind("focus").focus(function(){

在两个脚本中。

更好的方法是事件委托(delegate),尽管这需要对代码进行更多更改。

关于javascript - 需要 JQuery 停止重复单击的每个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9641623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com