for循环中有多个fadeToggle()?

时间:2016-04-17 18:07:31

标签: javascript jquery

我有一个“项目”对象。每个项目都有一个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()?

1 个答案:

答案 0 :(得分:0)

不要相信for循环是必要的。您应该能够使用选择器:has():not()

替换属性开头和属性结尾
$("[id^=projects]:has([id$=more])").click(function() {
  $("[id$=more]", this).fadeToggle()
})
相关问题