[英]jQuery-Facebox - Popup is not working after repaint from AJAX
我的頁面中有一組鏈接,並且附加了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調用再次渲染它時,該功能會丟失,這意味着當我單擊鏈接時,我將重定向到頁面而不是出現在面板上的彈出框。
我知道我在重新粉刷時需要做一些事情,有人可以指出我正確的方向嗎?
編輯:我正在像這樣在我的控制器上做部分渲染。
render(:partial => "grid_item" , :locals => {:day=>d, :hour=>h)
在部分內容中包含您提到的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?')"
希望能幫助到你!
您必須在添加新元素后再次調用.facebox()
。在ajax上使用回調函數...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.