我正在尝试使用 jQuery 代码中的对象。
我几乎做到了:
var opts = {
ul: $(this).find('.carousel'),
li: ul.find('li')
}
li
属性给出错误无法调用未定义的“find”方法
如何解决?
最佳答案
无论您的选择器是什么,您都无法在声明对象时访问其属性。
为什么要声明ul
?您正在 opts
对象上创建属性 ul
。
丑陋:
您可能想要的是:
var opts = {
ul: $(this).find('.carousel')
}
opts.li = opts.ul.find('li');
但是如果您实际上不需要引用这两个组,那么:
清洁工:
var opts = {
li: $(this).find('.carousel li')
}
var opts = {
li: $(this).find('.carousel li')
}
同样好。
最干净:
你还可以这样做:
var $carousel = $(this).find('.carousel');
var options = {
carousel: $carousel,
carouselItems: $carousel.find('li')
}
太糟糕了,但这是你自找的:
var CarouselOptions = (function () {
var options = function (carousel) {
this.carousel = $(carousel);
this.carouselItems = this.carousel.find('li');
};
options.prototype.myOptionsFunction = function () {
// Don't know what you want your object to do, but you wanted a prototype...
};
return options;
})();
var opts = new CarouselOptions($(this).find('.carousel'));
还有
(请注意您的 this
是什么,大概页面上有多个 .carousel
元素,而这里您需要目标内的元素一个事件。)
关于javascript - 无法调用未定义的方法 'find',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18322063/