Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 调用名为history的jquery对象函数_Javascript_Jquery - Fatal编程技术网

Javascript 调用名为history的jquery对象函数

Javascript 调用名为history的jquery对象函数,javascript,jquery,Javascript,Jquery,我有以下代码: var history = { stack : [], counter : -1, add : function(item){ this.stack[++this.counter] = item; this.doSomethingWith(item); // delete anything forward of the counter this.stack.splice(this

我有以下代码:

var history = {
    stack   : [],
    counter : -1,
    add     : function(item){
        this.stack[++this.counter] = item;
        this.doSomethingWith(item);

        // delete anything forward of the counter
        this.stack.splice(this.counter+1);
    },
    undo : function(){
        this.doSomethingWith(this.stack[--this.counter]);
    },
    redo : function(){
        this.doSomethingWith(this.stack[++this.counter]);
    },
    doSomethingWith : function(item){
        // show item
    }
};
当我试着这样使用它时,它不起作用

var item = $('#myDiv');
history.add(item);
我有一个错误:

未捕获类型错误:未定义不是函数


我怎样才能解决这个问题?谢谢

如果您将此代码放在其他代码后面,则效果良好:

var item = $('myDiv');
history.add(item);
如果将其放在前面,则函数尚未定义。
工作示例:

如果将此代码放在其他代码后面,则效果良好:

var item = $('myDiv');
history.add(item);
如果将其放在前面,则函数尚未定义。
工作示例:

$('myDiv')
替换为
$('.myDiv')
$('myDiv')

$('myDiv')
替换为
$('.myDiv')
$('myDiv')

问题是您为对象选择了一个坏名字。有内置的
历史
对象作为
窗口提供。历史
。因此,将您的重命名为其他名称,它应该会起作用。例如:

var appHistory = {
    stack   : [],
    counter : -1,
    ...
};

例如,您还可以通过将代码包装到IIFE中来修复它,这样
history
将成为局部变量。但我仍然建议选择不太容易混淆的名称。

问题是您为对象选择了一个不好的名称。有内置的
历史
对象作为
窗口提供。历史
。因此,将您的重命名为其他名称,它应该会起作用。例如:

var appHistory = {
    stack   : [],
    counter : -1,
    ...
};

例如,您还可以通过将代码包装到IIFE中来修复它,这样
history
将成为局部变量。但是我还是建议你选择一个不太容易混淆的名字。

你能加一把小提琴吗?你能加一把小提琴吗?我想这是问题中的一个拼写错误,现在已经解决了。不,问题不在$('myDiv')中,我想这是问题中的一个拼写错误,现在已经解决了。不,问题不在$('myDiv')中