首页 > 解决方案 > jQuery insertAfter 之后隐藏显示不起作用

问题描述

我在表中添加了一些行,当我单击一行时,应该打开不同的行,我正在使用 slideToggle 并隐藏显示,但它不起作用.. 点击确实有效(我添加了 console.log 来检查)- 如果我在 html 中编写行,它确实有效。这是功能:

$('#table').on('click','.good_light_tags_reg',function(){
    console.log("hey");
    if ($('.good_light_sub_tag_reg').is(":visible")){
        $('.good_light_sub_tag_reg').hide();
    }
    else{
        $('.good_light_sub_tag_reg').show();
    }
});

插入部分..

    var identified_correctly = {};
var rows = "";

for (var i=1 ; i<(table.rows.length -1) ; i++){
    if (table.rows[i].className.includes('_tags_reg')){
        if (table.rows[i].className != table.rows[i+1].className) {
             val = table.rows[i].cells[6].innerHTML;
             var pos = val.indexOf("<br>");
             var res = parseFloat(val.substring(0, pos));
             identified_correctly[table.rows[i].className]=parseFloat(res);

        }
    }
    }
var items = Object.keys(identified_correctly).map(function(key) {
return [key, identified_correctly[key]];
});
items.sort(function(first, second) {
return first[1] - second[1];
});

for (var i=0;i<items.length;i++){
    var class_name = items[i][0];

    var tags_rows = document.getElementsByClassName(class_name);

    var sub_tags_rows = document.getElementsByClassName(class_name.replace("_tags_","_sub_tag_"));
    for (var tag=0;tag<tags_rows.length;tag++){

        rows += tags_rows[tag].outerHTML;

        for (var sub_tag=0;sub_tag<sub_tags_rows;sub_tag++){
            rows += sub_tags_rows[sub_tag].outerHTML;

        }
    }
}
for (var i=0;i<items.length;i++){
    $("#table").find("."+items[i][0]).remove();
        $("#table").find("."+items[i][0].replace("_tags_","_sub_tag_")).remove();
    }
    $(rows).insertAfter($(".tag_list_reg").last()); 

标签: javascriptjqueryhtml

解决方案


尝试使用 $(document)

$(document).on('click','.good_light_tags_reg',function(){
    $('.good_light_sub_tag_reg').toggle();
});

如果要显示或隐藏的元素在新行内,试试这个

$(document).on('click','.good_light_tags_reg',function(){
    $(this).find('.good_light_sub_tag_reg').toggle();
});

推荐阅读