在我的rails应用程序中,当您投票、订阅或取消订阅列表时,它将使用pnotify显示弹出窗口。
在用户导航到不同的页面之前,它工作得很好,但现在它不再工作。这只在页面加载或重新加载时才起作用。
我知道这是因为在Rails4应用程序中使用turbolinks,但它似乎会执行除pnotify之外的所有其他javascript代码。
其他信息..
订阅/取消订阅和投票按钮具有方法post并远程执行,这意味着我有一个单独的文件名为subscribe.js.erb、unsubscribe.js.erb和vote.js.erb,当用户单击这些按钮时,它们处理javascript代码的执行。
这是我如何创建一个新的pnotify对象的示例:
new PNotify({
title: "Subscribed!",
text: "<%= @message %>",
type: 'info',
opacity: .8,
animation: {
effect_in: 'show',
effect_out: 'slide'
},
buttons: {
sticker: false
}
}).get().click(function() {
$(this).remove();
});我还使用了一个名为gem 'pnotify-rails'的gem来处理pnotify。
发布于 2015-01-30 01:12:35
我也遇到过同样的问题,但这是因为PNotify丢失了它的主体,正如你在那一行中看到的那样,插件将上下文指定为$(‘context’),但是当你使用turbolink导航时,主体会被替换,所以上下文就会丢失。
你需要做什么?
你需要在turbolink的event 'page:load‘中指定上下文。
$(document).on('page:load',function(){
PNotify.prototype.options.stack = {
dir1: "down",
dir2: "left",
push: "bottom",
spacing1: 25,
spacing2: 25,
context: $("body")
}
});
https://stackoverflow.com/questions/28078480
复制相似问题