Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 自举手风琴抑制打开_Javascript_Jquery_Twitter Bootstrap - Fatal编程技术网

Javascript 自举手风琴抑制打开

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

我有一个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>'
  );
}
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');
});