2015-01-22 2 views
0

Это событие продолжается, когда пользователь нажимает на элемент albumPreview. Это работает хорошо, когда я нажимаю на каждый albumPreview один раз, но когда я нажимаю снова, он удаляется только, а не добавляется снова.Удалить существующий контент и добавить новое

replaceWIth() способ не работает из-за случайного количества элементов в каждом albumPreview. Как я могу сделать эту работу?

if ($('.img-container-wrap').length == 0) { //IF NOT EXIST, CREATE 
    console.log(photoArray.response.length); 
    for (i; i < photoArray.response.length; ++i) { 
     albumContent //CONTAINER FOT IMAGES 
     .append($("<div class='img-container-wrap'></div>") 
       .append($("<div class='img-container'></div>") //APPEND TO IMG-CONTAINER-WRAP 
         .css({ 
          "background-image": 'url("' + photoArray.response[i].src + '")' 
         }))) 
    } 
} else if ($('.img-container-wrap').length > 0) { //IF EXIST, REMOVE _AND_ APPEND NEW CONTENT 
    $(".album-content-section").find('.img-container-wrap').remove(); //REMOVE ELEMENTS 
    for (i; i < photoArray.response.length; ++i) { 
     albumContent //CONTAINER FOR IMAGES 
     .append($("<div class='img-container-wrap'></div>") 
       .append($("<div class='img-container'></div>") 
         .css({ 
          "background-image": 'url("' + photoArray.response[i].src + '")' 
         }))) 
    } 
+0

.html (''). .html ('') очистит html в контейнере, а append добавит новый html – Van

+3

@Van, почему бы не использовать 'empty()' вместо 'html ('')'? –

+0

Да, он выполнит то же самое и, вероятно, лучший вариант. Но оба работают. – Van

ответ

0

Я понимаю, где моя ошибка состоит в том: empty() был в for loop.But photoArray.response.length не бесконечность, а когда конец цикла, empty() метод остановки working.Thanks для всех вас, ребята!

0

Пустой ваш контейнер первый затем сделать свой цикл:

albumContent.empty(); // remove previous content 

for (i = 0; i < photoArray.response.length; i++) { 
    albumContent //CONTAINER FOT IMAGES 
     .append($("<div class='img-container-wrap'></div>") 
      .append($("<div class='img-container'></div>") //APPEND TO IMG-CONTAINER-WRAP 
       .css({ 
        "background-image": 'url("' + photoArray.response[i].src + '")' 
       }))) 
} 
+0

Извините, тот же результат, что и мой. – Max

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