我试图在我的js对象的属性上使用jQuery函数,但它给了我一个错误"Uncaught TypeError: Cannot read property 'jquery' of undefined"
。以下是一些示例代码:
var foo = {
bar: $('#element'),
baz: this.bar.find('#childelement'), // <- jQuery .find() not working
hideBaz: function() {
this.baz.hide();
}
}
不确定该怎么做,任何帮助都会很棒
答案 0 :(得分:2)
为了启用jquery功能,您必须使用$(this)
而不是this
。不使用$(this)
,您将无法在该对象上使用任何jquery。
答案 1 :(得分:2)
你应该在jquery中包装this
:
var foo = {
bar: $('#element'),
baz: $(this).bar.find('#childelement'),
hideBaz: function() {
this.baz.hide();
}
}
答案 2 :(得分:1)
要使用jQuery,您需要使用jQuery提供的命名空间。即 - 使用jQuery提供的jQuery或$。您还可以使用jQuery.noConflict()创建自己的命名空间。
如果您使用它们,那么只有jQuery才会知道您正在尝试使用其对象访问其方法。像$(this)或$(&#34; yourselector&#34;)。
所以使用上面的内容,你可以使用
var foo = {
bar: $('#selector'),
baz: $(this).bar.find('#childSelector'),
hideBaz: function() {
this.baz.hide();
}
}
希望这会有所帮助。
快乐学习:)