Javascript 自举手风琴抑制打开
我有一个jQuery,它显然不起作用:Javascript 自举手风琴抑制打开,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我有一个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="ac
$('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>'
);
}
for(i=0;i
要使用的。在更改DOM时单击,而不是。单击
看。on will(和PRODUCT)用于观察变更区域的父级是否发生变更;执行更改后,它将自动将所有事件重新绑定到选定的子元素(使用过滤器)。在这个回答中,我对如何使用它作了更详细的描述
简而言之,尽管这是低效的(您应该将body更改为仅包含DOM更改部分的某个div):
如果您只需要以下手风琴项目:
$('body').on("click", 'input.descriptionLC', function(e){
$(this).next('.collapse').collapse('hide')
});
Jquery
$('body').on('click', 'input.descriptionLC', function(e){
$('.collapse').collapse('hide');
});
真的吗?我以为它会像那样替换实时事件?不,他们用.onso替换了所有这些旧事件,所以我最好绑定“body”而不是文档?谢谢你!实际上,您链接到了上的jquery文档,无论如何,您不应该绑定到文档,而应该绑定到body,或者更好的是绑定到与正在更改的DOM最近的包含div。例如,如果正在更改的div被.container包围,您应该使用$('.container')。。。我不知道为什么,但出于某种原因,这将打开页面上的所有手风琴,30+。是的,这将打开您选择的所有文档。折叠整个页面。如果你想要下一个。。。编辑答案??我不想打开任何一个。您的问题包含的代码显然是要在单击该对象时打开的。如果要解除绑定,可以使用
$('input.descriptionLC').UNBIND()
有人编辑了我的标题,但关键是在输入处于活动状态时不打开任何标题。
$('body').on('click', 'input.descriptionLC', function(e){
$('.collapse').collapse('hide');
});