通过函数禁用AJAX内容加载

时间:2016-03-15 04:28:39

标签: javascript jquery ajax routes

我有一个自定义插件,最初通过ajax将html内容加载到页面中,方法是将一个哈希标记和页面ID附加到URL。

我对这种复杂程度非常陌生,并希望“撤消”此功能,因此插件可以在没有路由器功能的情况下进行初始化。我一直在看这几天,很遗憾......

整个插件似乎都是由这个函数初始化的。有关如何关闭此功能的任何提示或建议,以便代码仍然初始化而不将#附加到URL将非常感激。

$(function() {

var connections = [],
    IEversion = detectIE(),
    killConnections = null,
    node = null,
    randomBehaviour,
    rootIndex = 1,
    silentRoute = null;

// Splash.
var splash = {
    init: function() {
        $('#splash').addClass('active');
        $('.node.splash').draggable({
            containment: 'parent',
            drag: function() {
                if(!splash.destroyed) {
                    $('.node.splash').addClass('dragging');
                    splash.destroy('drag');
                    splash.destroyed = true;
                }
            },
            scroll: false,
            disabled: false
        });
        setTimeout(function() {
            if($('.arrow').is(':visible')) {
                splash.destroy();
            }
        }, 4000);
    },
    destroy: function(event) {
        if(event === 'drag') {
            $('.arrow').hide();
        } else {
            $('.arrow').fadeOut(500);
        }
        $('#splash-wrapper p, .node.splash').fadeOut(500);
        setTimeout(function() {
            $('#splash').remove();
            nody.init();
        }, 500);
    },
    destroyed: false
};

// Router.
var routes = {
    '/': function() {
        if(!splash.destroyed) {
            splash.init();
        }else {
            nody.unloadMenu();
        }
    }
};

var router = Router(routes);

router.configure({
    strict: false,
    before: function() {
        if(silentRoute) {
            silentRoute = false;
            return false;
        }
    }
}).init('/');

});

1 个答案:

答案 0 :(得分:1)

一个简单的答案 -

$.mobile.ajaxEnabled = false;

使用jQuery Mobile。

详情 here

如果您想使用jQuery,那么就没有直接的方法。

所以你应该使用全局变量来这样做 -



var is_ajax_enabled = true;

$(document).ready(function()
{
    ...................
    ...................
    $("selector").click(function()
    {
        ...................
        //before AJAX call, just do a checking like it-
        if(is_ajax_enabled())
        {
          //make your AJAX call here
          $.ajax({url: "demo_test.txt", success: function(result)
          {
            $("#div1").html(result);
          }});
        }
        ...................
    });
    ...................
    ...................
});

function disable_ajax()
{
    is_ajax_enabled=false;
}

function enable_ajax()
{
    is_ajax_enabled=true;
}

function is_ajax_enabled()
{
    return is_ajax_enabled;
}

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
&#13;
&#13;
&#13;

更新 -

如果你想一次只有一个请求可用并为请求排队,你可以这样尝试jQuery-Ajax-Singleton -

$.ajax(options || {})