Наложение экрана и выполнение действий - PullRequest
0 голосов
/ 07 февраля 2012

Я не думаю, что субъект дал хорошее объяснение ...

Ну, концепция того, что я хотел бы сделать, проста.Я хочу, чтобы экранное наложение появлялось до того, как что-то было выполнено, и исчезало после этого.

Я попытался с помощью jQuery.show () / jQuery.hide (), но у меня ничего не получилось.

CSS

#ExtensionLoading {
    background: #000;
    width: 100%;
    min-height: 100%;
    position: fixed;
    z-index: 9999;
    display: none;
    opacity: .5;
}

JavaScript

Helpers.blackout( 'show' );

$( JSON.parse( Cookie.read( 'ListOfThings' ) ) ).each( function() {

    $( '#content' ).html(

        $( '#content' ).html().replace(

            new RegExp( this.itemText, 'g' ),

            '<a href="' + Helpers.url( { 'mod': 'items', 'p': this.itemID } ) + '">' + this.itemText + '</a>'
        )
    );
});

Helpers.blackout( 'hide' );

Это проблемный код.Но это не отдельный код.

Помощники

function Helpers() {}

Helpers.blackout = function( action ) {

    if( $( 'body' ).has( 'div#ExtensionLoading' ).length == 0 ) {

        $( 'body' ).prepend( '<div id="ExtensionLoading"></div>' );
    }

    if( action == 'show' ) {

        $( '#ExtensionLoading' ).show();

    } else if( action == 'hide' ) {

        $( '#ExtensionLoading' ).hide();
    }
};

JSON-манипуляции выполняются [сценарием Дугласа Крокфорда] [1]

[1]: https://github.com/douglascrockford/JSON-js/blob/master/json2.js, а Cookie - это просто объект Cookie, ничего особенного.

Если я прокомментирую строку, ответственную за скрытие элемента, все будет отлично.Появится экран наложения, и благодаря его непрозрачности я вижу применяемую подпрограмму.

Но, очевидно, наложение на экран не исчезает, потому что я не говорю, чтобы оно исчезло.Но если я раскомментирую эту строку, экран больше не появится.

Это странно.Это как если бы "hide" вызывался сразу после "show".Я думаю так, потому что, если я изменю в объекте помощников hide () на:

$( '#ExtensionLoading' ).hide('slow' );

Я очень быстро вижу, что наложение появляется и исчезает за несколько секунд до того, как произойдут замены.

...