我敢肯定这很简单,我只是还没有掌握它......
我有一个大 div,我希望用户单击它,它会将他单击的模型发送给它(就像在 SO 中一样,但是单击问题 div 上的任何位置都会重定向到问题)
<% @questions.each do |question| %>
<div id="question-<%= question.id%>" >
.... question details here ... not important to the question
</div>
<% end %>
现在,在我on-click="window.location = '<%= question_path(question) %>'"
对每个问题使用 so 之前,我会在单击 div 时获得适当的 url。
我想用 jquery 改变它(在一个单独的文件中)
问题.js.erb:
$(function() {
$([id^="question-"]).bind("click", function() {
window.location = <%= question_path(question) %>
});
});
这正是我的问题.. JS 文件不知道是什么,因为它是循环question
中的一个变量。each
有没有办法将信息传递给 JS,以便我可以使用它来生成正确的路径?
在 Rahul garg 的建议下,实施的解决方案是制作一个 html5 数据属性
<div id="question-<%= question.id%>" data-questionurl= '<%= question_path(question) %>'>
然后在js中做
window.location = this.getAttribute("data-questionurl");
我希望这个解决方案是好的编码实践