我已经设置了jgrowl,一切似乎都正常工作。我现在必须按一个按钮才能触发消息显示在屏幕的右上方,如下所示:
<input type="button" onclick="$.jGrowl('Your transaction has been processed', { life: 10000 });" href="javascript:void(0);" value="Default"/>
我想要的是当我在我的控制器中重定向时,jgrowl消息现在会自动弹出:
def ch_sum_total
#....some processing stuff code....
respond_to do |format|
format.html { redirect_to(:back) }
format.js {}
end
end
我该怎么做?
答案 0 :(得分:2)
我会在控制器上添加你想要成长的消息,以便你可以看看是否必须显示jGrowl。
这样的事情:
def ch_sum_total
#....some processing stuff code....
flash[:notice] = 'Your transaction has been processed'
respond_to do |format|
format.html { redirect_to(:back) }
format.js {}
end
end
并在:back
页面上显示如下内容:
<script>
$(function() {
<% if flash[:notice] %>
$.jGrowl('<%= escape_javascript(flash.discard(:notice)) %>', { life: 10000});
<% end %>
});
</script>
答案 1 :(得分:1)
通过传递$(...)
函数来使用jQuery的document.ready
处理程序。
$(function() {
$.jGrowl('Your transaction has been processed', { life: 10000});
});
这将阻止您的代码执行,直到加载DOM并且可以正确显示jGrowl。