我有一个“项目”对象。每个项目都有一个div和另一个div,它是隐藏的。我想创建多个fadeToggle()效果,这样对于每个项目 - 单击第一个div将使其中的一个显示出来。
我尝试用简单的for循环来做到这一点。
projects.display = function() {
for (var i = 0; i < projects.length; ++i) {
var projectID = "#projects-" + i;
var moreInfoID = "#projects-" + i + "-more";
// assign IDs for current project
$(projectID).click(function() {
$(moreInfoID).fadeToggle();
});
}};
此代码的结果是单击任何主div会触发LAST项目的隐藏div显示。
如何点击主div为指定的隐藏div调用fadeToggle()?
答案 0 :(得分:0)
不要相信for
循环是必要的。您应该能够使用选择器:has()
或:not()
$("[id^=projects]:has([id$=more])").click(function() {
$("[id$=more]", this).fadeToggle()
})