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')中