我试图学习更好地构建我的代码,并且在遵循一些教程之后开始使用下面的模式。
我已经用这种方式构建了许多常见UI小部件,但我已经击中了我的第一面墙,下面的.each()循环似乎实际上并不是循环遍历每个项目正在应用所需的操作,就好像它在一次迭代中对所有项目执行操作一样。
我读了一些关于$ .each和objects的内容,但我不确定$ .each,甚至是否是我应该去的方向。
jQuery(document).ready(function($) {
var tabs = {
trig : $('nav.tab-triggers'),
content : $('section.tabs-content'),
init : function() {
tabs.address([tabs.trig]);
tabs.address([tabs.content]);
},
address : function(item) {
//for every instance of the item
$(item).each(function() {
var i = 1;
$(this).addClass('tabs-' + i);
// for ever child element in this instance of the item
$(this).children().each(function() {
var count = 1;
if ($(this).parent().is('nav')) {
$(this).attr('href', '#tab-' + count);
} else {
$(this).attr('id', 'tab-' + count);
}
count++;
});
i++;
});
},
display : function() {
//show hide stuff here.
}
}
tabs.init();
});
我注意到你用你自己的柜台,就可以使用 $(项目)。每个(函数(指数){ }); 不理解你的问题的其余部分 –
嘿感谢您的输入,如果我可以进一步解释,基本上所有的孩子获得相同的href(在导航的情况下)或身份证,而不是递增的 - 好像它是处理所有与每个元素相对的匹配元素,因为它应该循环。 – pushplaybang
所以你得到所有元素相同的ID或HREF? –