我试图创建一个对象,它偶尔会根据用户交互重建菜单。我这样做的方式是克隆新菜单项并删除旧菜单项。这意味着我引入了一个新类的div实例,这意味着我必须重新加载影响这个类的jQuery。调用jQuery相同obj中的方法不起作用
在下面的例子中,点击菜单项会导致“TypeError:this.objMethod不是函数”。
如何让jQueryClick方法调用objMethod?我认为这是一个范围问题,但我无法弄清楚如何让jQuery函数超越自身。
function myObj(){
this.jQueryClick = function(){
$('.menu-item').click(function(){
this.objMethod();
})
}
this.objMethod = function(){
alert('hounds released');
}
this.jQueryClick(); // will be called whenever the menu is rebuild
}
newObj = new myObj;
如果我之外的电话objMethod使用jQuery这样的:
$('.menu-item').click(function(){
newObj.objMethod();
})
它的工作原理,但将只对初始菜单工作,而不是当它重建。
看起来您需要了解如何将事件绑定到动态元素(请参阅:['jQuery.on'](http://api.jquery.com/on/)) – Jamiec
看起来您是对的!比将jQuery集成到对象本身更加优雅的解决方案,我一直认为这看起来很杂乱。谢谢冠军:o) –
嘿酷。没有问题。对不起,我的评论(重读它)有点生硬。 – Jamiec