javascript - 如果 .parent().hasClass 那么 .parent().toggleClass

标签 javascript jquery html

你能帮我解决这个问题吗?

Javascript:

$(document).ready(function(){
    $(".tile a").click(function() {
        $(this).closest("div").toggleClass("selected_tile");
        if($(this).parent().parent().hasClass("col-md-4")){
            $(this).parent().parent().toggleClass("col-md-4 col-md-12");    
        }
        if($(this).parent().parent().hasClass("col-md-6")){
            $(this).parent().parent().toggleClass("col-md-6 col-md-12");    
        }
        if($(this).parent().parent().hasClass("col-md-8")){
            $(this).parent().parent().toggleClass("col-md-8 col-md-12");    
        }
    });         
});

HTML:

<div class="col-md-6">
    <div class="tile">
        <a href="#">web</a>
        <div class="project_info"></div>
    </div>
</div>

仅当父级已经拥有该类时,我才需要切换该类,否则什么都不做。

最佳答案

你需要以某种方式存储旧类,否则它会丢失。

这会将旧类存储在“data-old-class”中并切换新类:

JS:

 $(".tile a").click(function () {
     $(this).closest("div").toggleClass("selected_tile");
     //use varible!! no need to see (this).parent.parent.parent so many times XD
     var grandParent = $(this).parent().parent();
     //Check if it already has an "old class"
     if ((grandParent.attr("data-old-class"))&&grandParent.attr("data-old-class") !== '') {
         grandParent.removeClass("col-md-12").addClass(grandParent.attr("data-old-class"));
         //remove the old class (its more generic than toggle)
         grandParent.attr("data-old-class","");
     } else {
         grandParent.attr("data-old-class", grandParent.attr("class"));
         grandParent.attr("class","");
         grandParent.addClass("col-md-12");
     }
 });

Fiddle

关于javascript - 如果 .parent().hasClass 那么 .parent().toggleClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31907945/

相关文章:

html - 背景图像中的线条

javascript - 如何通过单击 html 页面中的按钮来启动 Chrome 打包应用程序

javascript - Twitter JavaScript OAuth : Get Access Token without Server Side

javascript - 我怎样才能得到相对定位的 parent

javascript - 如何使用 jQuery 和 Asp.Net MVC 3 实现提供额外动态生成字段的客户端注册表单?

php - 解析json并在img src问题中显示它

html - 如何在不同背景色的div中间显示文字?

javascript - 在网页表格中显示javascript变量的值

javascript - 创建色调直方图需要哪些值?

javascript - 在日期选择器上显示特定月份而不更改所选日期