javascript - 使用Javascript更改rails路径中传递的参数

标签 javascript jquery ruby-on-rails

我有一个抽认卡系统,允许用户创建和浏览抽认卡组。我目前正在重构它以使其更加高效,但我遇到了与之前类似的问题。通过 JavaScript 呈现按钮会导致按钮不再可单击,除非重新加载 Javascript。我不再需要在后台运行 500 个 Javascript 页面,而是对其进行了更改,这样我就不再需要它了。但是,我的路径是将当前卡的参数传递给 Controller ​​。然而,由于我不再通过 JS 生成按钮,因此按钮在页面加载时将参数作为原始卡传递。

  <%= link_to ">", flashcard_path(type: "next", old: @card.id, status: @is_read), remote: true, class: "btn" %>

如何更新@card.id而不重新渲染整个按钮?如果我也需要改变一些东西,我愿意接受建议。我确信我正在以一种奇怪的方式做这件事——因为这就是我做事的方式。 :)

这是重新呈现抽认卡和随附的 Controller 方法的 JavaScript。

$('#id_number').html("<%= @card_num %>");
$('#flashcard-title').html("<%= escape_javascript(@card.title) %>");
$('#flashcard-lines').html("<%= escape_javascript(render partial: 'flashcard_lines', :locals => { card: @card, is_read: @read }) %>");
$('#flashcard-body').html("<%= escape_javascript(@card.body) %>");
def flashcard
    all = FlashCard.all
    old_flashcard = FlashCard.find(params[:old].to_i)
    old_index = FlashCard.all.index(old_flashcard)
    case params[:type]
    when "new"
      @card = FlashCard.new
      @card.save
      @read = false
    when "edit"
      @card = old_flashcard
      @read = false
    when "next"
      if old_index == all.length - 1
        back = 0
      else
        back = old_index + 1
      end
      binding.pry
      @card = all[back]
      @read = true
    when "back"
      if old_index == 0
        back = all.length - 1
      else
        back = old_index - 1
      end
      @card = all[back]
      @read = true
    when "save"
      old_flashcard.save
      @card = old_flashcard
      @read = true
    when "delete"
      old_flashcard.destroy
      @card = FlashCard.all.last
    else
      @card = FlashCard.find(0)
      @read = true
    end
    if params[:status]
      @read = params[:status]
    end
    @card_num = FlashCard.all.index(@card) + 1
    respond_to do |format|
      format.html
      format.js
    end
  end

最佳答案

我不确定我是否正确理解你的问题,但也许你可以做这样的事情?

$('#current_btn_id').attr('old',new_id);

关于javascript - 使用Javascript更改rails路径中传递的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27334276/

相关文章:

javascript - 如何将幻灯片移动到 HTML 页面的中心

javascript - 根据所选值更改 HTML 5 范围 slider

ruby-on-rails - 如何更改 shoulda 匹配器的主题

ruby-on-rails - heroku/rails/chrome/selenium : error while loading shared libraries: libxshmfence. so.1

ruby-on-rails - 按Tire/ElasticSearch中的整个字段值分组

javascript - jQuery:尝试刷新或关闭浏览器时提示用户

javascript - 在隔离作用域指令中,在作用域上定义变量和在 Controller 上定义变量之间有什么区别吗?

javascript - 使用插件在Wordpress中添加自定义CSS

javascript - 日期选择器的问题

jquery - 为什么 $() 不起作用但 jQuery() 起作用?