Jquery - 创建后隐藏元素

时间:2012-10-25 13:03:32

标签: javascript jquery

创建元素的功能:

function create_image(){
        <?php if(isset($avatar)) : ?>
            var brojac = 5;
        <?php else: ?>
            var brojac = 4;
        <?php endif; ?>
        var broj_slike = (5 - brojac) + 1,
        slike;
        for (var i = 0; i < brojac; i++) {
            slike += '<label for="image'+ broj_slike +'">Slika ' + broj_slike + '</label><input type="file" name="userfile" id="image' + broj_slike + '" />';
            broj_slike++;
        };
        return slike;
     }

在页面上插入元素的功能:

var code = $('#code'),
     id = $('input[name=id]').val(),
     url = '<?php echo base_url() ?>mali_oglasi/mgl_check_paid';
     code.on('focusout', function(){
        var code_value = $(this).val();
        if(code_value.length != 16 ) {
            if ($('p[role=code_msg]').length != 0 ) $('p[role=code_msg]').remove() ;
            code.after('<p role=code_msg>Pogrešan kod je unešen.</p>');
        } else {
            if ($('p[role=code_msg]').length != 0 ) $('p[role=code_msg]').remove() ;
            $.post(url, {id : id, code : code_value}, function(data){
                if($.trim(data) != 'TRUE'){
                    code.after('<p role=code_msg>Uneti kod je neispravan.</p>');
                } else {
                    /*This part here put elements on the page*/
                    code.after('<p role=code_msg>Status malog oglasa je promenjen.</p>')
                    .after(create_image()).hide();
                    code.prev().remove();
                    code.remove();
                }
        });
        }
     });

如何隐藏新元素?

3 个答案:

答案 0 :(得分:2)

我没有看到整个代码,但隐藏元素就像使用hide方法一样简单。

$('<div/>').appendTo('#el').hide();

我正在创建并在隐藏它之前将元素插入到dom中 - 如果我理解正确的话,这个例子应该与你的相似。 (但是,在dom中插入一个元素以便在之后立即隐藏它是一种不好的做法 - 最好将它插入已经隐藏的dom中 - 它可以防止不必要的重绕)。

答案 1 :(得分:0)

答案 2 :(得分:0)

我会在元素添加到DOM之前隐藏它。

$('<div>').css({"display": "none"}).appendTo(elementInDOM);

OR

$(elementInDOM).append(
   $('<div>').css({"display": "none"})
);

我确信还有很多其他方法!