[英]Bootstrap Accordion Suppress Open
我有这个jQuery,显然不起作用:
$('input.descriptionLC').click(function(){
$('.collapse').collapse('hide')
});
我的html是由此for循环/追加生成的:
for (i=0; i < nodeArr.length; i++){
$('#accordion2').append('<div class="accordion-group">' +
'<div class="accordion-heading">' +
'<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion2" href="#collapse' + i + '">' +
'<hr class="inLC">' +
'<div class="divLC">' +
'<p class="titleLC">' + nodeArr[i][0] + '</p>' +
'<p class="imgWrap"><img class="imgLC" src="img/On_slider.png"></p>' +
'<input type="text" class="descriptionLC" id="description' + i + '">' +
'</div>' +
'</a>' +
'</div>' +
'<div id="collapse' + i + '" class="accordion-body collapse">' +
'<div class="accordion-inner">' +
'Anim pariatur cliche...' +
'</div>' +
'</div>' +
'</div>'
);
}
您要在更改DOM时使用.on而不是.click。
看到这个答案 。 .on将(并且应该)用于监视更改区域的父项是否发生更改; 一旦执行了更改,它将自动将所有事件重新绑定到选定的子元素(带有过滤器)。 在该答案中,我将更详细地说明如何使用它。
简而言之,尽管这样做效率不高(您应该将body更改为仅包含DOM更改部分的div):
$('body').on("click", 'input.descriptionLC', function(e){
$('.collapse').collapse('hide')
});
如果您只需要以下手风琴产品 :
$('body').on("click", 'input.descriptionLC', function(e){
$(this).next('.collapse').collapse('hide')
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.