代码之家  ›  专栏  ›  技术社区  ›  Mina Wissa

jQuery向下滑动选择某个元素?

  •  0
  • Mina Wissa  · 技术社区  · 14 年前

    $('.Minimize').click(function() {
                $('.ContentTD').slideUp('slow', function() {
                    //animation complete
                });
            });
    

    上面的脚本是在web用户控件中编写的。

    问题是,如果一个页面有多个控件实例,那么slideDown函数将在该页面的所有实例中执行。

    我希望函数只在我单击的控件中执行。

    1 回复  |  直到 14 年前
        1
  •  1
  •   Nick Craver    14 年前

    你可以爬到他们都在的容器里,找到相对的元素,就像这样:

    $('.Minimize').click(function() {
       $(this).closest('.container').find('.ContentTD').slideUp('slow');
    });
    

    假设标记如下:

    <div class="container">
      <button class="Minimize">Minimize</button>
      <div class="ContentTD">Content</div>
    </div>
    

    只要两者都在一个容器中,容器中有一个类或其他可以识别的属性,就可以使用 .closest() .find() .ContentTD 只在 容器。或者,如果他们是兄弟姐妹,就像上面这个简单的例子, .siblings('.ContentTD') 工作,或一些 其他 tree traversal method ,重点是使用 $(this) (the) .Minimize