2016-02-05 38 views
1

我在我的页面上有一个Foundation 5下拉菜单,它工作正常。但是,当我在下拉区域中提交表单时,会将新元素添加到页面的顶部,以便将所有元素向下移动。之后,我所有的下拉菜单都停止工作。 (如果我跳过元素与DOM的加入,一切都很好工作)基础下拉停止工作

我的下拉列表:

<div id="file-tab"> 
    <i data-dropdown="shareForm16" aria-controls="shareForm16" aria-expanded="false" class="iconTrigger"></i> 
    <form data-dropdown-content class="share-form f-dropdown content" aria-hidden="true" tabindex="-1" action="" id="shareForm16"> 
    ...   
    </form> 
</div> 

我想我需要重新绑定的基础事件监听器,但它不工作。也许我只是做错了。

$('#file-tab').on("submit", 'form.share-form',function(e){ 
    e.preventDefault(); 
    var groupName = $(form.target).find('input[type="text"]').val(); 
    var id = $(e.target).parent().children('input[type="hidden"]').val(); 
    if (groupName) { 
      $(e.target).trigger('click'); 
      window.currentFTT.share(id ,groupName); // adds the element to the DOM 
      // my attempt to rebind: 
      $('#'+e.target.id).foundation({bindings: 'events'}); 
      $('i[aria-controls="'+e.target.id+'"]').foundation({bindings: 'events'}); 
    } 
}); 

回答

0

与其说foundation各个元素,使一般的呼叫foundation,通过 '回流' 作为参数:

$(document).foundation('reflow');

E.g:

$('#file-tab').on("submit", 'form.share-form',function(e){ 
    e.preventDefault(); 
    var groupName = $(form.target).find('input[type="text"]').val(); 
    var id = $(e.target).parent().children('input[type="hidden"]').val(); 
    if (groupName) { 
      $(e.target).trigger('click'); 
      window.currentFTT.share(id ,groupName); // adds the element to the DOM 
      // my attempt to rebind: 
      $(document).foundation('reflow'); 
    } 
});