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 回答