簡體   English   中英

將 onClick 事件附加到 Rails 的 link_to_function

[英]Attaching onClick event to Rails's link_to_function

如何將 onclick 事件附加到link_to_function以便單擊事件刷新頁面上的元素(使用部分)?

當用戶單擊生成的鏈接時,我想刷新包含代碼的部分,以便i得到更新。

 def add_step_link(form_builder)
    logger.info 'ADD_STEP_LINK'
    link_to_function 'add a step' do |page|
      form_builder.fields_for :steps, Step.new, :child_index => 'NEW_RECORD' do |f|
        logger.info 'inserted js'
        html = render(:partial => 'step', :locals => { :step_form => f, :i=>@i+=1})
        page << "$('steps').insert({ bottom: '#{escape_javascript(html)}'.replace(/NEW_RECORD/g, new Date().getTime()) });"
      end
    end
  end 

我有一個更大形式的部分,其中僅包含:

<%= add_step_link(technique_form) %>

我正在嘗試跟蹤技術中的步驟數。 在我創建的表單中,用戶可以將新步驟添加到一組說明中。 現在,我有步驟 1-7 的默認字段。 添加一個步驟,您將獲得第 8 步。問題是后續步驟也編號為“8”。

我正在為我自己的目的擴展http://railsforum.com/viewtopic.php?id=28447中的“動態形式的多個子模型”教程。

好的,我對你在做什么有點困惑,但我會嘗試提出一些建議。

而不是使用link_to_function ,使用link_to_remote 鏈接到函數調用 javascript,但您實際上想要做的是回調控制器,然后運行一些 rjs 以替換完整的部分,或者更有可能將新的部分(包含步驟)附加到當前的末尾腳步。

這類似於您將看到的所有示例,其中人們將評論附加到他們的博客評論的末尾(期望使用 link_to_remote 而不是 remote_form_for),請參閱http://media.rubyonrails.org/video 的3/4 /rails_blog_2.mov

您可以在此處查看 link_to_remote 的文檔: http : //api.rubyonrails.org/classes/ActionView/Helpers/PrototypeHelper.html

我建議按照 RichH 的建議使用link_to_remote 你的訣竅似乎是跟蹤@i 我要么將它作為 URL 參數放在link_to_remote ,要么放在會話對象中。 我建議參加會議——這似乎更容易。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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