如何在 ruby on rails 和 javascript 中使用 data-post 接收数据
Posted
技术标签:
【中文标题】如何在 ruby on rails 和 javascript 中使用 data-post 接收数据【英文标题】:how to receive data using data-post in ruby on rails and javascript 【发布时间】:2021-10-02 01:57:53 【问题描述】:<a class="new_thread" data-post="<%= post.id %>">Button</a>
我试图将数据发送到 javascript
$('.new_thread').on('click', async evt =>
evt.preventDefault();
const $tgt = $(evt.target);
const $anchor = $tgt.is('a') ? $tgt : $tgt.parents('a');
const post_id = $anchor.attr('data-post');
const thread = document.getElementById("new_thread_modal_" + post_id);
if (thread.style.display === "none")
thread.style.display = "block";
else
thread.style.display = "none";
)
当我单击该按钮时,javascript 文件不起作用。我收到以下错误
Uncaught (in promise) TypeError: Cannot read property 'style' of null
at htmlAnchorElement.<anonymous> (comments.self-05d964752f9f39ac858194974bab2f9f098c99c773368326d9bde8e452bae945.js?body=1:265)
at HTMLAnchorElement.dispatch (jquery.min.js:3)
at HTMLAnchorElement.r.handle
之前,我使用 onclick,但现在我尝试使用 data-post 发送数据。当我试图在 logcat 中打印一些东西时,我注意到我可以得到输出。但是,我怎样才能接收我使用 data-post 发送的数据?
【问题讨论】:
【参考方案1】:$('.new_thread').on('click', async evt =>
evt.preventDefault();
const $tgt = $(evt.target);
const post_id = $tgt.attr('data-post');
const thread = document.getElementById("new_thread_modal_" + post_id);
if (thread.style.display === "none")
thread.style.display = "block";
else
thread.style.display = "none";
)
这对我有用。
【讨论】:
以上是关于如何在 ruby on rails 和 javascript 中使用 data-post 接收数据的主要内容,如果未能解决你的问题,请参考以下文章
如何在 ruby on rails 中获取控制器和操作列表?
Ruby on Rails - 如何在 Rails 方法中使用 HTML 坐标?
如何通过 websockets 在 ruby on rails 和 reactJS 之间发送数据