为什么弹出窗口会立即隐藏

时间:2016-01-25 13:13:27

标签: jquery

我添加了这段代码以防止特定页面上的浏览器后退按钮

$( document ).ready(function() {
    (function ($, global) {
        var _hash = "!",
        noBackPlease = function () {
            global.location.href += "#";

            setTimeout(function () {
                global.location.href += "!";
            }, 50);
        };

        global.setInterval(function () {
            if (global.location.hash != _hash) {
                global.location.hash = _hash;
            }
        }, 100);

        global.onload = function () {
            noBackPlease();

            // disables backspace on page except on input fields and textarea..
            $(document.body).keydown(function (e) {
                var elm = e.target.nodeName.toLowerCase();
                if (e.which == 8 && elm !== 'input' && elm  !== 'textarea') {
                    e.preventDefault();
                }
                // stopping event bubbling up the DOM tree..
                e.stopPropagation();
            });
        }

    })(jQuery, window);

});

使用上面的代码,后退按钮功能正常。

但我面临的问题是,当我点击提交按钮时,弹出窗口会立即隐藏

但是当我删除上面的代码时,一切都运行良好

你可以告诉我如何解决这个问题吗?

这是我的小提琴

http://jsfiddle.net/8uac7/2821/

2 个答案:

答案 0 :(得分:1)

首先,此检查始终不会相等

ParseRelation<Recipe> rel = ParseUser.getCurrentUser().getRelation("likedRecipes");
ParseQuery<Recipe> q = rel.getQuery();
q.findInBackground(...); // <- here you get all liked recipes. This can be used for the whole list.

if (global.location.hash != _hash) { 始终会返回hash#!将会_hash。所以当你的backbutton代码中存在错误时,它的代码并没有真正起作用。

当对话框打开时,它会设置哈希,以便更改广告,后面的按钮代码将会将其删除。

所以改变!

var _hash = "#!",

答案 1 :(得分:0)

正如您所看到的,弹出窗口会更改link,并且您的间隔会看到它已更改并返回到没有弹出窗口的原始状态(链接)。

在jQuery popup docs上,我看到您可以将历史记录设置为false: { history: false }