我有以下php
循环。它显示例如4张图片。
while( $get_images_result = mysqli_fetch_array($get_images) ) {
$image_id = (int) $get_images_result['p_image_id'];
$p_large_image = htmlspecialchars( $get_images_result['p_large_image'] );
$p_small_image = htmlspecialchars( $get_images_result['p_small_image'] );
echo '<div class="col-md-3 existingImg">';
echo '<div class="my_menu_image">';
echo "<img src='".IMG_DIR."menu_images/$p_small_image' class='img-responsive' width='160' height='112' />";
echo "<input type='hidden' id='p1' value='$p_large_image'>";
echo "<input type='hidden' id='p2' value='$mid'>";
echo "<input type='hidden' id='p3' value='$u_id'>";
echo '<a class="icon-jfi-trash jFiler-item-trash-action menu_image_delete"></a>';
echo '</div>';
echo '</div>';
$x++;
}
您可以看到此行menu_image_delete
echo '<a class="icon-jfi-trash jFiler-item-trash-action menu_image_delete"></a>';
个班级
此menu_image_delete
类用于删除图像。因此,一旦我删除每个图像,它就会成功从数据库中删除图像,然后我想隐藏我删除的所选图像。所以我使用以下jQuery代码但无法使其工作:(
JQuery代码:
$('.menu_image_delete').click(function() {
if ( confirm( 'Are you sure you want to delete this?') ) {
var p1 = $('#p1').val();
var p2 = $('#p2').val();
var p3 = $('#p3').val();
var param = 'delete_upload_image?p1='+p1+'&p2='+p2+'&p3='+p3;
$.get(param);
$('.existingImg').each(function() {
$('.existingImg', $(this) ).hide();
});
}
});
答案 0 :(得分:0)
在事件处理程序中使用this
,这是发生的实际元素事件。然后使用existingImg
closest()
更改
$('.existingImg').each(function() {
$('.existingImg', $(this) ).hide();
});
要
$(this).closest('.existingImg').hide();
但请注意,您应该只在成功回调$.get
时执行此操作,否则如果ajax请求失败,用户仍会看到元素隐藏并假设一切正常。
$.get(param, function(resp){
// validate your response here and then hide image
});