dQuery在dom更改后显示新元素

时间:2016-06-01 12:17:39

标签: javascript jquery dom

在DOM更改后我发现了许多操作新元素的方法,但所有方法都适用于事件。我只想让on click隐藏元素1,而不是将其替换为display:none并显示它。

到目前为止我的代码:

/*
     *  EDIT COMMENT
     */
    jQuery(document).on('click',options.targets.container+' '+options.targets.comment_edit, function(e){
        e.preventDefault();
        var target = e.target;
        target = jQuery(target).parent();
        var comment_content = jQuery(target).find('.comment_content');          
        var comment_content = jQuery(comment_content).text();


        jQuery(target).find('.comment_content').hide(400,function(){
            jQuery(target).find('.comment_content').replaceWith('<textarea style="display:none" class="'+options.targets.comment_edit_form.replace('.','')+'">'+comment_content+'</textarea>');


            //not working
            jQuery(target).delay(400).find(options.targets.comment_edit_form.replace('.','')).show(400)

            console.log(jQuery(target).find(options.targets.comment_edit_form.replace('.','')))
        });


    })

我想在替换之后显示新元素 问题是2:
1:我无法使用jquery获取新元素,因为它已被添加;
2:在其他功能完成后我无法显示它。

3 个答案:

答案 0 :(得分:0)

在插入后搜索元素

将代码修改为

jQuery(document).on('click',options.targets.container+' '+options.targets.comment_edit, function(e){
    e.preventDefault();
    var target = e.target;
    target = jQuery(target).parent();
    var comment_content = jQuery(target).find('.comment_content');          
    var comment_content = jQuery(comment_content).text();


    jQuery(target).find('.comment_content').hide(400,function(){
        jQuery(target).find('.comment_content').replaceWith('<textarea style="display:none" class="'+options.targets.comment_edit_form.replace('.','')+'">'+comment_content+'</textarea>');
      //show after  ( put your code here )
      jQuery(target).find('textarea').show();
    });
})

http://jsbin.com/pirinocuku/edit?html,js,output

答案 1 :(得分:0)

以下是我创建元素的方法:

    var dialogDiv = document.createElement("div");
    $("body").append(dialogDiv);
    $(dialogDiv).html('<p>' + text + '</p>');

答案 2 :(得分:0)

我做错了是什么 jQuery(target).find(options.targets.comment_edit_form.replace('.','')).show(400) options.targets.comment_edit_form是类,我从中移除了.,因此无法找到元素;

更改为:

jQuery(document).on('click',options.targets.container+' '+options.targets.comment_edit, function(e){
        e.preventDefault();
        var target = e.target;
        target = jQuery(target).parent();
        var comment_content = jQuery(target).find('.comment_content');          
        var comment_content = jQuery(comment_content).text();


        jQuery(target).find('.comment_content').hide(400,function(){
            jQuery(target).find('.comment_content').replaceWith('<textarea style="display:none" class="'+options.targets.comment_edit_form.replace('.','')+'">'+comment_content+'</textarea>');

            jQuery(target).find(options.targets.comment_edit_form.replace('.','')).show(400)
        });
    })

我的坏人,对不起的家伙