2010-06-18 28 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