如何从其他js文件中停止Spin.js

时间:2014-04-23 16:12:45

标签: javascript jquery spinner jquery-blockui

我需要帮助

实际上在我的工作中,我需要在jqgrid中实现spin.js和阻止UI。这是可以的,当我把代码放在相同的文件和功能,但我想从其他JS文件调用一个方法,并听到是我的问题。 spin.js和block UI启动,然后使用unblock阻止UI停止但spin.js仍在运行。

这是我的代码:

在jqgrid的BeforeRequest()中,我调用了一个方法

 $.pui.common.loaderAnimationON("pane-content");

此方法有此代码

  loaderAnimationON: function (div) {
        var opts = {
            lines: 13, // The number of lines to draw
            length: 20, // The length of each line
            width: 10, // The line thickness
            radius: 30, // The radius of the inner circle
            corners: 1, // Corner roundness (0..1)
            rotate: 0, // The rotation offset
            direction: 1, // 1: clockwise, -1: counterclockwise
            color: '#000', // #rgb or #rrggbb or array of colors
            speed: 1, // Rounds per second
            trail: 60, // Afterglow percentage
            shadow: false, // Whether to render a shadow
            hwaccel: false, // Whether to use hardware acceleration
            className: 'spinner', // The CSS class to assign to the spinner
            zIndex: 2e9, // The z-index (defaults to 2000000000)
            top: '50%', // Top position relative to parent in px
            left: '50%' // Left position relative to parent in px
        };
        var target = document.getElementById(div);
        var spinner = new Spinner(opts).spin(target);


        $.blockUI({
            blockMsgClass: "gridProjectsLoader",
            message: null
        });

        return spinner;
    },

在gridComplete()中我调用其他方法

     $.pui.common.loaderAnimationOFF("pane-content");

此方法有此代码

     loaderAnimationOFF: function (div) {
        var target = document.getElementById(div);
        var spinner = $.pui.common.loaderAnimationON();
        spinner.stop(target);
        $.unblockUI();
    }

任何人都可以帮助我?

谢谢你们

1 个答案:

答案 0 :(得分:1)

您应该使用相同的对象来启动和停止它。你可以在任何地方使用全局变量(只是另一个.js) 检查这个jsFiddle。它在3秒后停止旋转。

http://jsfiddle.net/YX7dy/8/

spinner=loaderAnimationON('Spin');
setInterval(function(){spinner.stop();},3000);