14

我有以下 javascript 代码:

function delete_draft(id, name) {
    var text = 'Are you sure you want to delete "' + name + '"?';
    alert(id + name)
    var noty = noty({
        text: text,
        buttons: [
        {addClass: 'btn btn-primary', text: 'Yes', onClick: function($noty) {

            // this = button element
            // $noty = $noty element

            $noty.close();
            $.post('/ajax/drafts/delete', {id:id}, function(data) {
                document.location.reload(true);
            });
        }
        },
        {addClass: 'btn btn-danger', text: 'Cancel', onClick: function($noty) {
            $noty.close();
        }
        }
    ]});
}

当我从领事那里逃跑时,delete_draft(6, "this is it")我收到了这个错误

TypeError: undefined is not a function
arguments: Array[1]
get message: function () { [native code] }
get stack: function () { [native code] }
set message: function () { [native code] }
set stack: function () { [native code] }
type: "called_non_callable"
__proto__: Error

我怎样才能解决这个问题?Noty 的网站是http://needim.github.com/noty/ 如果您认为它应该可以工作,请发表评论。

4

2 回答 2

25

我刚刚遇到这个问题。原来是因为变量名noty和导出的函数名一样noty

var n = noty({text: 'testing 123'});

只需更改变量名称即可为我修复它。

于 2012-09-18T10:53:31.603 回答
4

除了重命名变量外,请确保包含布局 js 文件。默认值为顶部,因此如果未在选项中指定,则需要包含noty/layouts/top.js. 如果您指定任何其他布局,则包括适当的布局 js 文件。

于 2012-09-20T22:27:43.717 回答