我有我的 onclick 事件工作,但是当它显示部分时:
只显示文本:
<%= escape_javascript(render(:partial => payment)) %>
我想让它获取parial并显示它
这是我的代码:
$(".payment").append("<%= escape_javascript(render(:partial => payment)) %>");
尝试使用 ""和 '' 支付
完整的 jquery 代码
$(document).ready ->
$('.plans').change ->
$(".payment").append("<%= escape_javascript(render(:partial => 'payment')) %>");
编辑:
自从我使用 devise 以来,如果有人在未来看到这个,这对我有用:
devise_scope :user do
get 'registrations/toggle_partial' => "registrations#toggle_partial"
end
将toggle_partial.js文件放入
views/devise/registrations
NickM 放在那里的其他一切都很棒......
还记得部分名称周围的''
最佳答案
根据您上面的“完整 jquery”代码,我猜您在 coffeescript 文件中有此代码,该文件无权访问渲染方法。
您将必须设置一个路由来触发呈现 JS 的 Controller 操作,如下所示:
路线.rb:
get 'controller_name/toggle_partial' => "controller_name#toggle_partial"
在那个 Controller 中:
def toggle_partial
respond_to do |format|
format.js
end
然后在 views/controller_name 中添加一个名为 toggle_partial.js 的文件,其中包含以下内容:
$(".payment").append("<%= escape_javascript(render(:partial => payment)) %>");
然后在你的 coffeescript 文件中做这样的事情:
$('.plans').change ->
$.ajax(
type: 'GET'
url: '/controller_name/toggle_partial'
success: ( data, status, xhr ) ->
)
抱歉,如果 coffeescript 示例中的缩进关闭。最重要的是,您无权在 coffeescript 文件中呈现,因此您必须进行变通。 希望这会有所帮助。
关于javascript - 使用 onclick 事件附加部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26537575/