0

私のアプリには、さまざまなイベント (ログイン/ログアウトなど) 中に表示されるフラッシュ/ステータス メッセージがあります。Flash()マークアップから関数を参照するにはどうすればよいですか?

マークアップ

<div id="flash">this is a flash message</div>
<script>
    Flash.success(); // doesn't work. undefined.
</script>

Javascript

$(document).on('ready', function() {

    Flash = new Flash();

    function Flash() {
        this.success = function() {
            $('#flash').html('Success!');
        }
    }

});

マークアップから関数を呼び出すにはどうすればよいですか?

4

1 に答える 1

1

Flash関数は別の関数のスコープ内で宣言されているため、グローバルではないため、他のスクリプト ブロックからアクセスできません。

最も簡単な修正は、新しく構築されたオブジェクトの宣言を変更して、グローバル スコープに明示的に追加することです。

window.flash = new Flash();  // NB: lowercase for vars, uppercase for constructors

長期的には、(グローバル名前空間の汚染を避けるための) より良い修正は、独自のモジュールをすべて独自の名前空間に配置することです。

var MYNAMESPACE = MYNAMESPACE || {};
...

MYNAMESPACE.flash = new Flash();
于 2013-07-09T11:25:29.697 に答える