2015-05-02 2 views
0

У меня есть таблица, где пользователи могут добавлять строки с помощью jquery. Все это прекрасно работает. проблема в том, что динамически созданная строка имеет кнопку с событием onclick, которое подключается к новому коду Ajax для просмотра с компьютера. Проблема заключается в том, что кнопка работает в первой сгенерированной строке, но когда я сгенерировал другую, кнопка не работает.newajax onclick не работает для динамически созданных элементов

Это кнопка с OnClick событие:

<a onclick="image_upload('image<?php echo $image_row; ?>', 'thumb<?php echo $image_row; ?>');" id="simple-image<?php echo $image_row; ?>" class="upimage"><?php echo $text_browse; ?></a> 

Новый Ajax код события:

function image_upload(field, thumb){ 
    new AjaxUpload('#simple-image' + <?php echo $image_row; ?>, { 
    action: 'index.php?route=common/filemanager/upload&image=' + encodeURIComponent($('#' + field).attr('value')), 
    name: 'image', 
    autoSubmit: true, 
    responseType: 'json', 

    onChange: function(file, extension) { 

     this.setData({'directory': ''}); 
    this.submit(); 
    }, 

    onSubmit: function(file, extension) { 
     $('#simple-image' + <?php echo $image_row; ?>).append('<img src="catalog/view/theme/default/image/loading.gif" class="loading" style="padding-left: 5px;" />'); 
    }, 
    onComplete: function(file, json) { 
     if (json.success) { 
     $('#' + field).attr('value','data/user/'+file); 
      $.ajax({ 
        url: 'index.php?route=common/filemanager/image&image=' + encodeURIComponent($('#' + field).attr('value')), 
       dataType: 'text', 
       success: function(text) { 
       $('#' + thumb).replaceWith('<img src="' + text + '" alt="" id="' + thumb + '" />');       
       } 
      }); 
     } 

     if (json.error) { 
      alert(json.error); 
     } 

     $('.loading').remove(); 
    } 
    }); 

     }; 

Любая помощь будет оценена.

ответ

0
<?php $iid = 0; ?> 

<a onclick="image_upload('image<?php echo $image_row; ?>', 'thumb<?php echo $image_row; ?>','simple-image<?php echo $image_row.$iid; ?>');" id="simple-image<?php echo $image_row.$iid++; ?>" class="upimage"><?php echo $text_browse; ?></a> 


function image_upload(field, thumb , idd){ 
new AjaxUpload('#'+idd , { 
action: 'index.php?route=common/filemanager/upload&image=' + encodeURIComponent($('#' + field).attr('value')), 
name: 'image', 
autoSubmit: true, 
responseType: 'json', 

onChange: function(file, extension) { 

    this.setData({'directory': ''}); 
this.submit(); 
}, 

onSubmit: function(file, extension) { 
    $('#simple-image' + <?php echo $image_row; ?>).append('<img src="catalog/view/theme/default/image/loading.gif" class="loading" style="padding-left: 5px;" />'); 
}, 
onComplete: function(file, json) { 
    if (json.success) { 
    $('#' + field).attr('value','data/user/'+file); 
     $.ajax({ 
       url: 'index.php?route=common/filemanager/image&image=' + encodeURIComponent($('#' + field).attr('value')), 
      dataType: 'text', 
      success: function(text) { 
      $('#' + thumb).replaceWith('<img src="' + text + '" alt="" id="' + thumb + '" />');       
      } 
     }); 
    } 

    if (json.error) { 
     alert(json.error); 
    } 

    $('.loading').remove(); 
} 
}); 

    }; 
+0

спасибо @EraMax за вашу помощь, это прекрасно работает с некоторыми изменениями кода, которые у меня есть –

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