2014-09-25 15 views
-1

sample如何使JavaScript类拨动持续

var main = function() { 
    $('.article').click(function() { 
     if($(this).hasClass('current')) { 
       $(this).children('.description').toggle("slow"); 
     } 
     else { 
       $('.article').removeClass('current'); 
       $('.description').hide(); 
       $(this).addClass('current'); 
       $(this).children('.description').toggle("slow"); 
     }; 
}); 
} 
$(document).ready(main); 

你好,我想知道如何学会做几件事情跟我一点就点击:具有

林在用户点击一个已经打开的文章之后,如何使这个切换列表保持持久性是困难的。现在我拥有它的方式设置当前的文章将会在每次点击时切换,我希望它保持打开状态,并且只需点击标题本身(与项目中的任何位置相对)即可关闭。

而且
+如何建立一个开放/关闭所有的肘杆
+连续性的视觉线索,显示列表是可扩展的,如果它是打开或关闭,如果不这样做,将适合这种风格

+0

切换切换 - 就是这样。对于持久性,您需要addClass/removeClass,而不是切换。 – 2014-09-25 17:46:15

+0

然后将切换处理程序附加到'.article'类可能不是您想要的,如果您想要以不同方式处理关闭切换。 – 2014-09-25 18:08:18

+0

感谢您的输入!林仍然不知道为什么我得到了一个合法的问题,我的负面问题.. – 2014-09-25 19:01:32

回答

1

您需要针对.article .item,而不是.article

var main = function() { 
    $('.article .item').click(function() { 
     var article = $(this).closest('.article'); 
     if(article.hasClass('current')) { 
       article.children('.description').toggle("slow"); 
     } 
     else { 
       $('.article').removeClass('current'); 
       $('.description').hide(); 
       article.addClass('current'); 
       article.children('.description').toggle("slow"); 
     }; 
    }); 
} 

演示在http://jsfiddle.net/kL70z8ky/5/

+0

谢谢!非常简单的解决方案,现在我明白我的错误 – 2014-09-25 19:08:41

1

想要点击一个子项来关闭主标题,则需要停止事件传播。

请查看完整的语法/用法:How to stop event bubbling on checkbox click

用法:

event.stopPropagation() 
+0

明白了,很好的资源谢谢! – 2014-09-25 19:04:38

1

这里有一个不错的aproa ch:

$('.article').click(function() { 
    $(".article").not($(this).addClass('current')).removeClass('current'); 
    $('.description').not($('.description',this).slideDown()).slideUp(); 
});