【发布时间】:2012-11-27 05:26:29
【问题描述】:
我确定这很简单,只是我还没有掌握它......
我有一个大 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) %>'" 之前,对于每个问题,我都会在单击 div 时获得相应的 url。
我想用 jquery 改变它(在一个单独的文件中)
question.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");
我希望这个解决方案是良好的编码习惯
【问题讨论】:
标签: jquery ruby-on-rails ruby-on-rails-3 unobtrusive-javascript