2014-09-19 2 views
-1

У меня есть селектор файлов, который заполняет div миниатюрами на основе файла. Теперь у меня есть несколько кнопок и div, которые содержат одинаковые имена классов. Что я использую каждый раз выбирается основная кнопка, var thisButton = $(event.target); что переводится:Проблема поиска определенного div с тем же классом - JQuery

var appendThis = thisButton.closest('.insurance').find(".attachmentCont"); 
      appendThis.append('<div class="singleImg"><img src="'+attachment.url+'" width="100px"/><input type="hidden" class="fileURL" value="'+attachment.id+'"/><span class="removeImg remove"> X </span></div>'); 
      $(".removeImg").bind('click', function(){ 
       $(this).parent().remove(); 
      }); 

appenThis равно кнопку, которая находится в пределах DIV, содержащего другой DIV attachmentCont Оба кнопки и Div находятся в parent div, который div.insurance Существует несколько контейнеров div.insurance. Моя проблема заключается в том, что при использовании thisButton.closest('.insurance').find(".attachmentCont"); он всегда фокусируется на div .attachmentCont, который был выбран первым. Поэтому, если я выбрал раздел 1, изображение заполняется. Если я выберу раздел 2, раздел 1 все равно получит это изображение, когда div.attachmentCont в разделе 2 также должен получить append().

Предложения или мысли?

HTML Пример:

<div class="notes-section insurance"> 
    <span><b>General </b></span><textarea style="width:97%;" rows="5" cols="50" class="insurance-description fields contractor_insurance_description" placeholder="...."></textarea> 
    <input type="date" class="expiration-date" placeholder="Expiration Date"> 
    <br> 
    <span>Your</span> 
    <div class="attachmentCont"> 
    </div> 
    <br> 
    <input type="button" class="upload_image_button" value="Attach Documents" style="width:150px;"> 
</div> 
+0

Что делает ваш HTML выглядит? – slicedtoad

+0

@slicedtoad check update –

+0

Итак, вам нужна кнопка, чтобы получить дескриптор элемента «.attachmentCont» над ним. Но вместо этого ваш код иногда получает один из другого контейнера. Правильно ли я понимаю? – slicedtoad

ответ

0

Здесь был вопрос:

Моя слепота не видеть, что функция, которая содержит кнопку selected не каким-либо образом связан с функцией этой appended в данные. Из-за этого мне оставалось только перемещать мой var thisButton в родительский класс.

Спасибо всем за то, что вы время.

Решения:

var thisButton 

$('.upload_image_button').on('click', function(event){ 
     thisButton = $(event.target); 
     event.preventDefault(); 
}); 
.... 
function...({ 
     var appendThis = thisButton.closest('.insurance').find(".attachmentCont"); 
     appendThis.append('<div class="singleImg"><img src="'+attachment.url+'" width="100px"/><input type="hidden" class="fileURL" value="'+attachment.id+'"/><span class="removeImg remove"> X </span></div>'); 
     $(".removeImg").bind('click', function(){ 
     $(this).parent().remove(); 
     }); 
}); 
Смежные вопросы