2010-06-18 62 views
2
重绘我有一组在我的网页链接的

,我已附上facebox jQuery的功能,因此,每当按下一个链接,它会得到一个不错的弹出jQuery的Facebox - 弹出不工作后,从AJAX

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

下面是我用“facebox'ing脚本。

<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) 

回答

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?')" 

希望它有帮助!

+0

嘿,我是几乎没有。 jQuery('a [rel * = facebox]')为我返回整套LINK标签。但我需要根据ID过滤它。怎么做 ? – bragboy 2010-06-18 13:55:38

+0

@Bragaadeesh - 你可以阅读链接的ID选择器... http://api.jquery.com/id-selector/或更多其他选择器在这里http://api.jquery.com/category/selectors/ – Reigel 2010-06-18 14:16:21

+0

this回答也帮助我...我已经添加了jQuery('a [rel * = facebox]')。facebox();在AJAX响应和问题消失...非常感谢你! – 2013-08-20 13:43:37

1

你必须再次调用.facebox()添加新元素后...在你的AJAX使用一个回调函数...

+0

你可以给我的语法吗? (我是新来的jQuery/facebox) – bragboy 2010-06-18 12:38:28

+0

这取决于你的Ajax如何去......你能告诉我一些代码?...渲染部分... – Reigel 2010-06-18 12:42:28

+0

我可以..但它在的Ruby-on-轨道?它很好吗? – bragboy 2010-06-18 12:44:21