如何隐藏我刚刚点击添加的div?

时间:2018-05-30 23:12:31

标签: javascript jquery javascript-events mustache

我在点击时向我的按钮添加了一些HTML,如下所示:

jQuery(document).ready(function($) {
    $('#sprout-view-grant-access-button').on('click', function(e) {
        $(this).toggleClass('request-help-cta-transition', 1000, 'easeOutSine');
        var callback = $(e.currentTarget).attr('data-grant-access-callback');
        var wrapper = $('.dynamic-container');
        console.log(wrapper);

        if( typeof window[callback] !== 'function') {
            console.log('Callback not exist: %s', callback);
        }

        var already_exists = wrapper.find('.main-grant-access');
        console.log(already_exists);

        if( already_exists.length ) {
            already_exists.remove();
        }

        var markup = $(window[callback](e.currentTarget));
        wrapper.append(markup);

    });
});

function generate_grant_access_container_markup() {
    var contact_data_array = contact_data;

    var template = jQuery('#template-sprout-grant-access-container')

    return mustache(template.html(), {
        test: 's'
    });
}

根据代码,来自generate_grant_access_container_markup的任何内容都会放在dynamic-container内并显示。

我的问题是,新添加的代码在再次单击(切换)按钮时不想消失。

这是我的语法/胡子模板:

<script type="template/mustache" id="template-sprout-grant-access-container">
    <p class="main-grant-access">{{{test}}}</p>
</script>

这是容器:

<div class="button-nice request-help-cta" id="sprout-view-grant-access-button" data-grant-access-callback="generate_grant_access_container_markup">
Grant Devs Access
    <div class="dynamic-container"></div>
</div>

据我所知,click事件只知道点击时DOM中的项目,但是如何让它知道之后添加的所有内容?

1 个答案:

答案 0 :(得分:0)

我建议可见性:隐藏。两者都显示无,并从网站的流程中删除dom混乱中的元素。您可以确定不会影响设计的可见性:隐藏。

我根本不处理Jquery,但似乎这个Stack溢出覆盖了设置它的方法。

Equivalent of jQuery .hide() to set visibility: hidden