JS:在jquery“click”中调用对象的方法

时间:2014-01-12 19:10:57

标签: javascript jquery methods

我对我的众多错误之一有一个根本的误解。我用jquery。

我有一个对象定义为:

var terms = {};

terms.clear_history = function(a, b)
{ /* DO SOMETHING */ }

我可以在我的主js文件中调用terms.clear_history(1,2)函数,没问题。但是当我尝试通过<a/>元素的“点击”调用它时:

$(document).on('click', '#clearterms', function(){
    terms.clear_history(1, 2);
    });

它给了我以下错误:

  

未捕获的TypeError:对象#没有方法'clear_history'

我明白我不懂基本的东西......

谢谢!

1 个答案:

答案 0 :(得分:0)

这听起来像是一个范围问题。也许全局范围中的terms与给定方法的clear_history指定的this相同。 另外,您不希望将您的参数命名为window.terms = {}; window.terms.clear_history = function(foo,bar){console.log(foo,bar);}; //then later: $(document).on('click', '#clearterms', function(){ window.terms.clear_history(1, 2); }); ,这是JS中的保留关键字。

试试这个:

{{1}}