2

我的页面中有一组链接,并且我附加了 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 调用时再次呈现它时,功能会丢失,这意味着当我单击链接时,我会被重定向到一个页面而不是一个 Facebook 弹出窗口。

我知道重绘时我需要做一些事情,有人可以指出我正确的方向吗?

编辑:我正在像这样在我的控制器上进行部分渲染。

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

2 回答 2

3

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

假设您使用的是 alink_to_remote或类似的东西,您还可以使用:completeor:succes选项来添加您的 javascript 回调,例如:

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

希望能帮助到你!

于 2010-06-18T13:20:50.220 回答
1

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

于 2010-06-18T12:37:33.063 回答