2016-06-01 2 views
0

Я нашел много способов работать с новыми элементами после изменения DOM, но все работает с событиями. Я просто хочу, чтобы on click скрыть элемент 1, чем заменить его на 2 display:none и показать его.jQuery показать новый элемент после изменения dom

Мой код до сих пор:

/* 
    * 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: Я не могу отобразить его после выполнения других функций.

ответ

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

+2

код свалка не является полезной – Satpal

0

Вот как я создал элемент:

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

проблема уже решена, нужно ждать 21h, чтобы отметить мой ответ, как принято –

0

Что я сделал неправильно было
jQuery(target).find(options.targets.comment_edit_form.replace('.','')).show(400) options.targets.comment_edit_form классно и я удалить . от него, поэтому он не мог ind - элемент;

Изменен:

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) 
     }); 
    }) 

мой плохой, извините ребята

Смежные вопросы