簡體   English   中英

jQuery-Facebox-從AJAX重新繪制后,彈出窗口無法正常工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM