2015-04-02 1 views
0

Я пытаюсь добавить элемент обратно после удаления html с помощью функции remove(). По какой-то причине, когда я вызываю функцию add(), переменная удаляет, теряя html DOM. Если я положил remove.insertAfter('#element'); за пределы ajaxSuccess(), он будет работать. Я использую ajaxSuccess(), потому что я хочу, чтобы ajax закончил сначала, прежде чем я смогу снова показать пользователю элемент.не может добавить обратно элемент html после использования отсоединения

var remove; 
    function remove() { 

//there is a ajax call here 

     $(document).ajaxSuccess(function() { 
      remove = $('#myDiv').detach(); //or should I use remove()? 
     }); 
    } 

    function add() { 

//there is an ajax call here 

     $(document).ajaxSuccess(function() { 
      remove.insertAfter('#main'); 
     }); 
    } 

    <div id="main"> 
     <div id="myDiv"> 

     </div> 
    </div> 
+1

И почему все обернуто в обработчик 'ajaxSuccess', это не тот путь сюда! Также отправьте код ajax! – adeneo

ответ

0

согласно апи документации от

detach()

Он утверждает использовать отсоединение() хранит все данные Jquery, связанные с удаленными элементами В вашем случае это может быть DOM не готовый после вызова ajax, попытайтесь отложить действие на несколько секунд, когда вы добавите элемент назад и посмотрите, работает ли он. Я хочу сбросить действие добавления элемента обратно в DOM. Просто предложение

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