2014-02-08 59 views
0

我正在尝试使用ajax将页面加载到部分工作的页面中。 我似乎遇到的问题是,当链接被点击的内容加载,但链接消失,也当内容被加载,没有该内容区域内的JavaScript的作品单击时隐藏ajax链接

侧边栏的链接

- content_for :sidenav do 
    - @pages.each do |obj| 
    %li= link_to(obj.name, edit_admin_page_path(obj), :remote => true) 

Ajax来呈现局部

$('#page_view').html('<%= escape_javascript (render :partial => 'edit') %>') 

部分被呈现

= simple_form_for(@page, :url => admin_page_path(@page), :method => :put, :html => { :class => 'form-vertical' }) do |form| 
    = render form 

回答

0

内容

你提到你的链接/内容阿贾克斯后就会消失更新

的问题将是这一行做:

$('#page_view').html('<%= escape_javascript (render :partial => 'edit') %>') 

您的链接将落入#page_view元素内,这意味着当您更新其HTML时,您将删除该链接s /其他内容。为了解决这个问题,你需要在特定容器上发出.html命令你需要


链接

您的链接不会起作用,因为JavaScript不能绑定到不存在的DOM元素负荷

你通常有这样的事情:

$(".element").on("event", function() { 
    //Your stuff here 
}); 

这里的问题是becau在您的Ajax调用之前,您的文档中不会存在se .element,它不会被绑定,从而阻止您的事件触发操作。为了解决这个问题,你将出现在DOM负载的元素需要delegate,像这样:

$(document).on("event", ".element", function() { 
    //Your Code 
}); 
+0

欢呼@rich,在表单中我渲染我使用基础选项卡,将这个DOM问题仍然存在与此? –

+0

嗯我之前没有使用过基金会的东西 - 你有链接吗? –

+0

这就是我使用http://foundation.zurb.com/docs/components/tabs.html –