Javascript onClick 事件只有一次
Javascript onClick event just once?
我正在尝试实现一个评论系统。现在我有一个关于JS和onClick函数的问题。首先是代码:
<ul class="comments">
<li>
<div class="comment">
<div class="img-thumbnail" style="margin-left: -98px;">
<img class="avatar" alt="" src="img/avatars/noAvatar.jpg" style="width:50px;height:50px;">
</div>
<div class="comment-block-new" style="background-color:#fff;">
<div class="post-leave-comment" style="border:0px; margin:0px; padding:0px;">
<form action="" method="post">
<div class="row">
<div class="form-group">
<div class="col-md-12">
<textarea maxlength="500" rows="1" class="form-control" name="comment" id="comment" onClick="expandComment(this,this.form);">Post your comment...</textarea>
</div>
</div>
</div>
</form>
</div>
</div>
</div>
</li>
还有功能.js
function expandComment(inputC,formC){
inputC.innerHTML = '';
var showReplyOptions = '<div class="row" id="commentUserInfo" data-appear-animation="fadeInDown">'
+ '<div class="form-group">'
+ '<div class="col-md-4">'
+ '<label>Your name</label>'
+ '<input type="text" value="" maxlength="100" class="form-control" name="name" id="name">'
+ '</div>'
+ '</div>'
+ '</div>'
+ '<div class="row" id="commentPost" data-appear-animation="fadeInDown">'
+ '<div class="col-md-12">'
+ '<input type="submit" value="Post Comment" class="btn btn-primary btn-lg" data-loading-text="Loading...">'
+ '</div>'
+ '</div>';
formC.innerHTML = formC.innerHTML + showReplyOptions;
}
现在我希望扩展函数只运行一次。我需要创建ID的扩展动态原因和即将推出的回复系统。怎么做?
提前谢谢你。
您是否尝试为它添加标志?
var bExpandFunctionRunned = false;
function expandComment(inputC,formC){
// it won't run again once the flag is set.
if(bExpandFunctionRunned == false){
bExpandFunctionRunned = true;
inputC.innerHTML = '';
var showReplyOptions = '<div class="row" id="commentUserInfo" data-appear-animation="fadeInDown">'
+ '<div class="form-group">'
+ '<div class="col-md-4">'
+ '<label>Your name</label>'
+ '<input type="text" value="" maxlength="100" class="form-control" name="name" id="name">'
+ '</div>'
+ '</div>'
+ '</div>'
+ '<div class="row" id="commentPost" data-appear-animation="fadeInDown">'
+ '<div class="col-md-12">'
+ '<input type="submit" value="Post Comment" class="btn btn-primary btn-lg" data-loading-text="Loading...">'
+ '</div>'
+ '</div>';
formC.innerHTML = formC.innerHTML + showReplyOptions;
}
}
在元素 dataSet 中分配 flag
值的最佳方法,当事件调用时,请检查 flag
value 函数,如果已经从函数顶部调用 return,请参见下面的代码
function expandComment(inputC,formC){
/***return event code****/
if(inputC.dataset.offclickevent === true)
return;
else
inputC.dataset.offclickevent = true;
/****************/
inputC.innerHTML = '';
var showReplyOptions = '<div class="row" id="commentUserInfo" data-appear-animation="fadeInDown">'
'<div class="form-group">'
'<div class="col-md-4">'
'<label>Your name</label>'
'<input type="text" value="" maxlength="100" class="form-control" name="name" id="name">'
'</div>'
'</div>'
'</div>'
'<div class="row" id="commentPost" data-appear-animation="fadeInDown">'
'<div class="col-md-12">'
'<input type="submit" value="Post Comment" class="btn btn-primary btn-lg" data-loading-text="Loading...">'
'</div>'
'</div>';
formC.innerHTML = formC.innerHTML + showReplyOptions;
}
相关文章:
- 简单的onclick事件只起过一次作用
- Javascript:onclick函数工作一次,页面就会恢复到原来的状态
- Javascript onClick 事件只有一次
- Chrome/Firefox 一次在所有 JavaScript onclick 事件上设置断点
- 为什么我的onClick js函数调用每次页面加载只工作一次
- jQuery fadeIn 元素一次一个 onClick
- Javascript onclick 只工作一次
- 将 ASP.NET 个网络表单 OnClick 事件限制为一次
- React onClick函数在渲染到DOM时只触发一次
- onclick事件在arctext脚本中只能工作一次
- jQuery/MVC3函数html onclick只工作一次
- javascript循环需要显示隐藏列表onclick一次一个
- onClick功能只触发一次
- JavaScript只执行一次基于onClick事件的功能
- 为什么onClick事件在html中只工作一次
- 使onclick只发生一次
- CSS和Javascript rotate只在onclick上运行一次
- HTML PHP onclick只工作一次
- Onclick功能不工作后,你点击一次
- 文档.getElementById onclick每次页面加载只工作一次