我在我的页面中有一组链接,并且我附加了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)
答案 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上使用回调函数......