2013-03-23 2 views
0

У меня есть модальное всплывающее изображение, которое заполняется одним изображением функцией jQuery.jQuery .empty() перезаписывает .appendTo()

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

Вот как я это называю:

$('#articleFeatured').click(function (e) { 
    e.preventDefault(); 
    $('#imageModal').show(500); 
    $('#imageModal').empty(); //empty modal to prevent clogging/build-up/duplicates 
    $('#articleFeatured img').clone().appendTo('#imageModal #imageHolder'); 
    //imageModal Close Button Functionality 
    $('#close_button').click(function() { 
     $('#imageModal').hide(500); 
    }); 
}); 

Проблема заключается в том, что

.empty() 

переписывает функцию

.appendTo() 

.

Почему? Я имею в виду appendTo пробегает после пустого. Причина, по которой я использую .empty(), состоит в том, чтобы иметь одно изображение в модальном состоянии в то время и предотвращать нарастание.

+5

'.appendTo ('# imageModal #imageHolder')' означает элемент с id 'imageHolder' внутри элемента с id' imageModal'. Поскольку вы просто опустошили элемент imageModal', селектор никогда не соответствует чему-либо. – JJJ

+1

Что вы подразумеваете под «переписыванием» в этом контексте? –

+2

Кстати, если только в особых случаях поиск элемента по идентификатору внутри другого элемента неверен. '' #imageModal # imageHolder'', скорее всего, не правильный селектор. –

ответ

1

Изменение .appendTo('#imageModal #imageHolder') по .appendTo('#imageModal'). Элемент imageModal только что был опустошен, поэтому он не может содержать элемент с идентификатором imageHolder.

+0

Благодарю вас, вы очень правы – DextrousDave