[英]Dynamically adding contents inside Jquery ui accordion doset work
所以我有这个手风琴代码,它有三个输入字段和两个按钮
<div id="accordion">
<h3>External Attendees</h3>
<div>
<div class="invitediv">
<div class="form-row invitepeople">
<div class="col-3">
<input type="text" class="form-control inmail" placeholder="Email" />
</div>
<div class="col-3">
<input type="text" class="form-control inname" id="extname" placeholder="Name" />
</div>
<div class="col-3">
<input type="text" class="form-control incnt" placeholder="Mobile No" />
</div>
<div class="col-1">
<input type="button" id="reminvt" onclick="removeDiv(this);" class="btn btn-danger reminvt" value="-" />
</div>
<div class="col-1">
<input type="button" id="addinvt" class="btn btn-success" value="+" />
</div>
</div>
</div>
</div>
</div>
单击此按钮时调用此方法
$("#addinvt").on("click", function (e) {
debugger;
e.preventDefault();
var data ='</br> <div class="form-row invitepeople" >'+
' <div class="col-3">'+
' <input type="text" class="form-control inmail" placeholder="Email" />'+
' </div>'+
'<div class="col-3">'+
' <input type="text" class="form-control inname" id="extname" placeholder="Name" />'+
' </div>'+
'<div class="col-3">'+
'<input type="text" class="form-control incnt" placeholder="Mobile No" />'+
'</div>'+
'<div class="col-1">'+
' <input type="button" id="reminvt" onclick="removeDiv(this);" class="btn btn-danger reminvt" value="-" />'+
'</div>'+
'<div class="col-1">'+
'<input type="button" id="addinvt" class="btn btn-success" value="+" />'+
'</div>'+
'</div>'
$(".invitediv").append(data);
});
并将 HTML 附加到手风琴内的 div,所以我的问题是 + 按钮仅适用于手风琴内已经存在的元素,我可以使用它添加新输入,但新添加元素的 + 按钮不会不行,这是怎么回事? 有人可以解释一下吗?
尝试为每个按钮提供一个唯一的 id,我在这里通过这样做<input type="button" id="addinvt" class="btn btn-success" onclick="addDiv(this);" value="+" />
<input type="button" id="addinvt" class="btn btn-success" onclick="addDiv(this);" value="+" />
在这里, var elemtnCount = document.querySelectorAll('.invitepeople').length;
首先,我检查了您已经拥有的元素数量,然后将其递增以生成新密钥,然后将其与 ID 属性一起添加以生成唯一 ID。
并为每次添加(+)按钮单击使用一个函数。 因此,您的按钮将是独一无二的,并且每次单击都会添加按钮。
注意:这里我只对添加按钮进行了更改,对 remove(-) 按钮执行相同操作。
function addDiv(e) { debugger; var elemtnCount = document.querySelectorAll('.invitepeople').length; var newElemCount = elemtnCount + 1; var data ='</br> <div class="form-row invitepeople" >'+ ' <div class="col-3">'+ ' <input type="text" class="form-control inmail" placeholder="Email" />'+ ' </div>'+ '<div class="col-3">'+ ' <input type="text" class="form-control inname" id="extname" placeholder="Name" />'+ ' </div>'+ '<div class="col-3">'+ '<input type="text" class="form-control incnt" placeholder="Mobile No" />'+ '</div>'+ '<div class="col-1">'+ ' <input type="button" id="reminvt" onclick="removeDiv(this);" class="btn btn-danger reminvt" value="-" />'+ '</div>'+ '<div class="col-1">'+ '<input type="button" id="addinvt'+(newElemCount)+' " class="btn btn-success" onclick="addDiv(this);" value="+" />'+ '</div>'+ '</div>' $(".invitediv").append(data); };
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div id="accordion"> <h3>External Attendees</h3> <div> <div class="invitediv"> <div class="form-row invitepeople"> <div class="col-3"> <input type="text" class="form-control inmail" placeholder="Email" /> </div> <div class="col-3"> <input type="text" class="form-control inname" id="extname" placeholder="Name" /> </div> <div class="col-3"> <input type="text" class="form-control incnt" placeholder="Mobile No" /> </div> <div class="col-1"> <input type="button" id="reminvt" onclick="removeDiv(this);" class="btn btn-danger reminvt" value="-" /> </div> <div class="col-1"> <input type="button" id="addinvt" class="btn btn-success" onclick="addDiv(this);" value="+" /> </div> </div> </div> </div> </div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.