jQuery-Facebox - 从AJAX重绘后,Popup无法正常工作

时间:2010-06-18 12:32:37

标签: jquery ruby-on-rails facebox

我在我的页面中有一组链接,并且我附加了facebox jQuery功能,这样无论何时按下链接,它都会得到一个很好的弹出窗口

<a href="coach_selector_popup?day=<%= day %>&hour=<%= hour %>" rel="facebox">

以下是我用于'facebox'的脚本。

<script type="text/javascript">
  jQuery(document).ready(function($) {
    jQuery('a[rel*=facebox]').facebox()
  })
</script>

以上工作正常。但是当我在响应一些AJAX调用时再次渲染它时,功能就会丢失,这意味着当我点击链接时,我被重定向到一个页面而不是一个facebox弹出窗口。

我知道当我重新粉刷时我需要做点什么,有人能指出我正确的方向吗?

编辑:我正在我的控制器上执行渲染部分。

render(:partial => "grid_item" , :locals => {:day=>d, :hour=>h)

2 个答案:

答案 0 :(得分:3)

将您提到的javascript代码包含在内部。我猜它会在加载时再次执行。我不确定document.ready事件是否在部分更新时被触发,但我认为是。

假设您使用的是link_to_remote或类似内容,您还可以使用:complete:succes选项添加您的javascript回调,例如像这样:

link_to_remote get_icon('remove'), 
   :url => {:action => "your_action", :id => @record},
   :success => "jQuery('a[rel*=facebox]').facebox();" , 
   :failure => "alert('It failed?')"

希望它有所帮助!

答案 1 :(得分:1)

添加新元素后,你必须再次调用.facebox() ...在你的ajax上使用回调函数......