将切换应用于每个锚标记的问题

时间:2011-10-11 19:45:35

标签: jquery

我正在尝试使用点击'每个'项目.toggleDiv来分别切换,而不是一次性切换。

现在点击的.toggleDiv只需点击一下即可展开.fullSaintDesc内的所有元素,这就是我不希望它做的事情 - 我想要的是具有类{的每个元素{1}}展开.toggleDiv但不是全部展开。

如果您觉得我的问题标题不清楚我要问的内容,请随时编辑。

.fullSaintDesc

HTML

这些类正在整个页面中使用 - 我希望每个.toggleDiv都可以自行扩展而不是一次点击。

$(document).ready(function() {     
    $(".toggleDiv").click(function(){
        $(".fullSaintDesc").toggle();return false;
    });   
});

4 个答案:

答案 0 :(得分:6)

将其更改为:

 $(".toggleDiv .fullSaintDesc").click(function(){
    $(this).toggle();
 });

没有看到html结构,我只能猜测,但这应该有效:

 $(".toggleDiv").click(function(){
    $(this).find('.fullSaintDesc').toggle();
 });

编辑3:反映最后一次更新:(如果一致)

 $(".toggleDiv").click(function(){
    $(this).parent().next('.fullSaintDesc').toggle();
 });

答案 1 :(得分:2)

$(".toggleDiv").click(function(event){
   $(this).parent().next('.fullSaintDesc').toggle();
   event.preventDefault(); 
});

答案 2 :(得分:1)

您必须为点击提供上下文。

如果您只是尝试切换单击内容的子元素,那么这应该可以正常工作。

$(".toggleDiv").click(function(){
    $(this).find('.fullSaintDesc').toggle();
});

编辑基于更新的问题:

如果点击的元素是<a>,那么您不一定需要return false,更好的方法是使用e.preventDefault();`

$(".toggleDiv").click(function(e){
    $(this).parent().next(".fullSaintDesc").toggle();
    e.preventDefault();
});

答案 3 :(得分:1)

根据修订后的问题,您需要:

$(document).ready(function() {  
  $(".toggleDiv").click(function(){
    $(this).parent().next(".fullSaintDesc").toggle();
  });   
});

它告诉它从单击的锚开始,向上移动一个级别,然后找到下一个fullSaintDesc,然后切换它。

JSFiddle example.