gpt4 book ai didi

javascript - 如何使 javascript 所做的更改持久化 (rails)

转载 作者:太空宇宙 更新时间:2023-11-04 02:27:46 24 4
gpt4 key购买 nike

我正在尝试使 javascript 所做的更改持久化。具体来说,我有一个 Rails 应用程序,它允许用户“喜欢”其他用户的帖子。当用户喜欢(喜欢)一个帖子,或者当一个新的 favorite创建后,我希望使用 javascript 和/或 jQuery 更改帖子的背景颜色(例如,更改为 green )(我看不出有任何其他方法可以做到这一点)。问题是当我重新加载页面时,更改不是持久的,背景颜色变为默认颜色。

我尝试了以下方法,但均无效;

addClass结合 removeClass

append <style> ... </style>直接标记,因此样式更改可以持久,但不会成功。

我已经在 app/views/favorites/create.js.erb 中尝试了以上两个方法并直接在显示收藏帖子的 View 模板中使用 <script> ... </script>标签。

如有任何建议,我们将不胜感激。

最佳答案

要使数据持久化,您需要将其存储在数据库中。您可以发出 ajax 请求并将 like 事务保存在数据库中。在成功的 ajax 请求上,您可以使用 addClassremoveClass 修改元素。这些更改将在重新加载时丢失。

根据db中保存的值,你需要在前端分配类。您必须在 erb 文件中编写相同的元素修改。

<div class=<%= liked?(post, current_user) ? 'liked-class' : 'not-liked-class' %>>
</div>

你需要这样的东西。上面的代码只是一个例子。您需要编写 liked? 辅助方法逻辑、类名等。

关于javascript - 如何使 javascript 所做的更改持久化 (rails),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37052137/

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