0

我试图在单击不基于任何数据库对象,而是基于从 API 派生的局部变量的“组名”时,在弹出窗口中呈现部分内容(理想情况下是我必须弄清楚的模式)。我看过这篇较旧的帖子:Rendering partial in rails modal,但它根本不适合我。当我点击时,我只是被路由到根目录。我目前正在尝试通过在单击“组名”时在“渲染部分”和 .show() 函数上使用 display:none 来做到这一点。

我对 Rails 很陌生,并且真的很难学习 Javascript,所以我不知道出了什么问题。

这是视图:

<div id="groups_show" style="display:none">
  <%= render partial: 'groups/group_full', :locals => {group: group} %>
</div>
<%= link_to group.name, root_url, class: "groups_showme" %>

Javascript:

$('.groups_showme').click(function() {
  $('#groups_show').show();
  win = new Window({title: "Share This", width:200, height:150, destroyOnClose: true,     
  recenterAuto:false});
  win.setContent('#groups_show',true,true);
  win.show();
}

编辑:有效的最终代码

$('.groups_showme').on('click', function(e) {
 e.preventDefault();
 $('#groups_show').show();
 win = new Window({title: "Share This", width:200, height:150, destroyOnClose: true, recenterAuto:false});
 win.setContent('#groups_show',true,true);
 win.show();
 return false;
});
4

1 回答 1

2

您的 JS 代码中有两个与此行为相关的错误:

  1. click(function()应该有一个论据e
  2. e.preventDefault()应该放在第一位。对于最后一个位置,等价于return false
  3. [可选] 更好地使用on而不是click

所以,

$('.groups_showme').on('click', function(e) {
  e.preventDefault();
  // others
});
于 2013-09-21T05:01:19.437 回答