我试图将对象的功能添加到在满足某些条件时创建的按钮中。是否有我要在document.ready外部更改的变量是否重要?

var myvar = 1;
$(document).ready(function(){
 var myobj = {
  changeMyVar: function(){ myvar++;}
 }
...
/* button id='my-button' is created in a div id='mydiv' */
...
 $('#mydiv').on('click', '#my-button', myobj.changeMyVar);
});


该按钮没有附加功能,也不会引发错误。实际上,console.log(myobj.changeMyVar)返回未定义。我在这里想念什么?

编辑:我撒谎没有错误,我在.on()行上得到一个“未定义不是函数”。

谢谢!

Edit2:经过进一步分析,我在原始代码中发现了一个傻傻的type-o。感谢您的回答!

最佳答案

我尝试在小提琴中复制您的问题,但它确实有效。

试试这个http://jsfiddle.net/7fjk3wxs/1/

这是我使用的:

var myvar = 1;
$(document).ready(function(){
 var myobj = {
  changeMyVar: function(){
      myvar++;
      alert(myvar);
  }
 };


 $('#mydiv').on('click', '#my-button', myobj.changeMyVar);
});

关于javascript - jQuery使用.on()添加对象函数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27244077/

10-11 11:42