2014-06-08 86 views
0

我有一些由div标记分隔的表。当有人点击一个字母时,我只想查看相关的div标签内容。我可以用这个jQuery代码来做到这一点。jquery addClass和removeClass未按预期工作

$(".expand_button").on("click", function() { 
     $(this).next(".expander").addClass('view_expander'); 
    }); 

但事情是当用户点击另一封信时,它也显示其内容不断显示以前点击的div内容。我需要的是如果用户点击另一个字母以前的东西必须隐藏。我试图通过删除类“view_expander”来完成它,但它没有工作。

$(".expand_button").on("click", function() { 
      $(this).next(".expander.view_expander").removeClass('view_expander'); 
     }); 

<div class="expand_button"> 
     <h1>A</h1> 
    </div> 
    <div id="a_section" class="expander"> 
     <table> 
      <tr> 
       <td> 
        Ambalanthota 
       </td> 
       <td> 
        Isuru Morots 
       </td> 
       <td> 
        B. G. A. Gamini 
       </td> 
       <td> 
        0727610675 <br> 0472225200 
       </td> 
       <td> 

       </td> 
       <td> 
        195/1, D S Senanayake Mw, Ambalanthota 
       </td> 
      </tr> 

     </table> 
    </div> 
    <div class="expand_button"> 
     <h1>B</h1> 
    </div> 
    <div id="b_section" class="expander"> 
     <table> 
      <tr> 
       <td> 
        Bandarawela 
       </td> 
       <td> 
        GTS Holding(Pvt)Ltd 
       </td> 
       <td> 
        CK Bopitiya 
       </td> 
       <td> 
        0773529044 <br> 0572231231 
       </td> 
       <td> 
       </td> 
       <td> 
        No.38Badulla Road,Bandarwela. 
       </td> 
      </tr> 

     </table> 
    </div> 
+1

这样http://jsfiddle.net/fzjev/51/ –

+0

叶!这一个工作:) – Yasitha

回答

1

试试这个,你需要先删除所有其他类,然后再设置新类。为了能够继续切换它们,您需要跟踪是否再次单击其相同的项目。

var selected = null; 

$(".expand_button").on("click", function() { 

    if (this !== selected) { 
     $(".view_expander").removeClass("view_expander"); 
    } 

    $(this).next(".expander").toggleClass('view_expander'); 
    selected = this; 
}); 

的jsfiddle http://jsfiddle.net/zTN6U/1/

+0

这也很好。 – Yasitha

+0

哇!在您编辑的回复之后,它会结合我所寻找的两件事情。惊人。非常感谢你。 – Yasitha

2

试试这个,它会折叠其他内容,你点击任何展开按钮。

$(".expand_button").on("click", function() { 
    $(".expander").removeClass("view_expander"); 
    $(this).next(".expander").toggleClass('view_expander'); 
}); 
+0

这一个也工作。谢谢。 – Yasitha

1

您可以使用切换类或每次点击搜索,如果有与类的元素,将其删除。 例子:

$(".expand_button").on("click", function() { 
    var expender = $('.view_expender'); 
    If (expender.length > 0) { 
     $(expender).removeClass('view_expander'); 
    } 
    $(this).next(".expander").toggleClass('view_expander'); 
}); 
+0

使用此时。这是完全不同的。当我点击一封信时,它正在扩展,如果我点击另一封信,它也会扩展。当我只再次点击一个扩展的信件时,只有它被折叠。 – Yasitha