gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 11:16:16 26 4
gpt4 key购买 nike

我有一个抽认卡系统,允许用户创建和浏览抽认卡组。我目前正在重构它以使其更加高效,但我遇到了与之前类似的问题。通过 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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com