首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails turbolinks中断pnotify

Rails turbolinks中断pnotify
EN

Stack Overflow用户
提问于 2015-01-22 07:01:14
回答 1查看 472关注 0票数 2

在我的rails应用程序中,当您投票、订阅或取消订阅列表时,它将使用pnotify显示弹出窗口。

在用户导航到不同的页面之前,它工作得很好,但现在它不再工作。这只在页面加载或重新加载时才起作用。

我知道这是因为在Rails4应用程序中使用turbolinks,但它似乎会执行除pnotify之外的所有其他javascript代码。

其他信息..

订阅/取消订阅和投票按钮具有方法post并远程执行,这意味着我有一个单独的文件名为subscribe.js.erb、unsubscribe.js.erb和vote.js.erb,当用户单击这些按钮时,它们处理javascript代码的执行。

这是我如何创建一个新的pnotify对象的示例:

代码语言:javascript
复制
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。

EN

回答 1

Stack Overflow用户

发布于 2015-01-30 01:12:35

我也遇到过同样的问题,但这是因为PNotify丢失了它的主体,正如你在那一行中看到的那样,插件将上下文指定为$(‘context’),但是当你使用turbolink导航时,主体会被替换,所以上下文就会丢失。

你需要做什么?

你需要在turbolink的event 'page:load‘中指定上下文。

代码语言:javascript
复制
$(document).on('page:load',function(){
	PNotify.prototype.options.stack  = {
		dir1: "down",
		dir2: "left",
		push: "bottom",
		spacing1: 25,
		spacing2: 25,
		context: $("body")
    }
        
});

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28078480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档