2014-08-29 2 views
0

Im удаление баннерных изображений с помощью jQuery и Ajax.Показать мою ссылку "Удалить", только если у меня есть несколько изображений в моем картинке

Но если у меня есть только одно изображение, я не хочу его удалять.

У меня есть список изображений, так и для каждого изображения у меня по этой ссылке:

echo '<a class="delete j_bannerdelete" id="'.$rslt_banner['id'].'" href="#">Delete</a> '; 

И я думал, что-то о tihs, просто показать «Удалить» ссылку, если мой число строк было больше, чем 1.

if($read_ban->rowCOunt() >1{ 
    echo '<a class="delete j_bannerdelete" id="'.$rslt_banner['id'].'" href="#">Delete</a> '; 
} 

Но как это, например, если у меня есть 2 изображения, я удалить один, и, как Im удаление с помощью AJAX, моя страница DonT обновления, поэтому у меня последнее изображение с моей «удалить» ссылку, и поэтому я может удалить его.

Знаете ли вы простой способ решить эту проблему?

Мой код удаления:

$(function(){ 
    var banner_id = null; 
    $("a#no").click(function(event){ 
     event.preventDefault(); 
     $('.confirm').fadeOut("slow",function(){ 
      $('.delete_dialog').fadeOut("slow"); 
     }); 
     $('.bannerli li[id="'+ banner_id +'"]').css('background','#f5f5f5'); 
     banner_id = null; 
    }); 
    $("a#delete").click(function(event){ 
     event.preventDefault(); 
     if (!banner_id) return; 
     $.post(url,{action:'ban',id: banner_id},function(){ 
      window.setTimeout(function(){ 
       $('.bannerli li[id="'+ banner_id +'"]').fadeOut("slow"); 
      },500); 
      $('.confirm').fadeOut("fast",function(){ 
       $('.delete_dialog').fadeOut("fast"); 
      }); 
     }); 
    }); 
    $('.bannerli').on('click','.j_bannerdelete',function(){ 
     banner_id = $(this).attr('id'); 
     $('.bannerli li[id="'+ banner_id +'"]').css('background','red'); 
     $('.delete_dialog p').text('Are you sure you want to remove this banner?'); 
     $('.delete_dialog').fadeIn("slow",function(){ 
      $('.confirm').fadeIn("slow"); 
     }); 
     return false; 
    }) 
}); 

ответ

3

я создал упрощенное решение здесь: http://jsfiddle.net/wgjrnw7m/1/. Это должно дать вам представление о том, как это сделать.

В принципе вы хотите посчитать, сколько элементов у вас есть:

if($('.bannerli').length <= 1) { /* Hide delete */ }

И вы хотите, чтобы сделать эту проверку каждый элемент будет удален. Если элементы также могут быть добавлены, вам также необходимо проверить, есть ли у вас более одного элемента, и в этом случае снова показать все кнопки удаления.

+0

Спасибо за ваше решение. Но я использую его более просто, и кажется, что он работает правильно. У меня в моем документе reay этот вызов disableDeleteIfOnlyOneItem (1); И когда после удаления моего изображения у меня есть этот вызов disableDeleteIfOnlyOneItem (2); И я просто использую вашу функцию: function disableDeleteIfOnlyOneItem ($ value) { if ($ ('. Bannerli li'). Length <= $ value) { $ ('. J_bannerdelete'). Hide(); } } И кажется, что все в порядке! Благодаря! – OzzC

2

сосчитать, сколько баннеров все еще находятся на странице с селектором JQuery. чем показывать только функцию удаления, если

if ($('.j_bannerdelete').length > 1) { 
... 
+0

взлеты. спасибо @MelanciaUK – Votto

+0

Спасибо за ваш ответ. Ваше решение также сработало! – OzzC

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