当我使用$(this)时,我的jquery代码在opencart项目中出现问题,我想对特殊行进行fadeOut,但是它将通过代码将行中的所有行都淡出(($(this).parent()表中的.parent()。parent()。fadeOut(500);“):HTML:
<tr role="row">
<td role="cell" class=""><span><input type="checkbox" name="selected[]" value="{{ branch.branch_id }}" class="selected" /></span></td>
<td role="cell"><span><a href="{{branch.view}}">{{ branch.name }}</a></span></span></td>
<td role="cell"><span>{{ branch.description }}</span></td>
<td role="cell"><span>{{ branch.country }}</span></td>
<td role="cell"><span>{{ branch.zone }}</span></td>
<td role="cell"><span>{{ branch.city }}</span></td>
<td role="cell" class=""><span>{{ branch.postcode }}</span></td>
<td role="cell"><span>{{ branch.created_at }}</span></td>
<td role="cell" class=""><span><a href="{{ branch.edit }}" data-toggle="tooltip" title="{{ button_edit }}" class="btn btn-primary"><i class="fa fa-pencil"></i></a></span></td>
</tr>
按钮:
<div class="custom-button">
<a href="http://localhost/task/myshop/index.php?route=seller/account" class="">رجوع<i class="fa fa-angle-double-left" aria-hidden="true"></i> </a>
<a href="http://localhost/task/myshop/index.php?route=seller/branch/add" class="">اضافة<i class="fa fa-plus" aria-hidden="true"></i> </a>
<a href="http://localhost/task/myshop/index.php?route=seller/branch/delete" class="delete-button">حذف<i class="fa fa-times" aria-hidden="true"></i> </a>
</div>
Jquery代码:
$('body').on('click','.delete-button',function(e){
var thisButton = $(this);
e.preventDefault();
var selected = $('input.selected');
var inputSelected = Array();
$.each(selected,function(index, value){
if($(this).prop('checked')){
inputSelected.push($(this).val());
}
});
// ajax
$.ajax({
url: thisButton.attr('href'),
method: 'post',
data: {'selected' : inputSelected},
success: function(json){
if(json.success){
toastr.success(json.successfull.message,json.successfull.header);
$.each(selected, function(value){
$(this).parent().parent().parent().fadeOut(500);
});
}else{
toastr.warning(json.error.message,json.error.header);
}
},
error: function(xhr, status, message){
toastr.error("{{ error_message }}","{{ error_header }}");
},
});
});
我找到了解决此问题的方法,我忘记了是否选中此复选框,因为它会删除我表的所有行。
内部jquery ajax代码,内部成功函数:
$.each(selected, function(value){
if($(this).prop('checked'))
$(this).parent().parent().parent().fadeOut(500);
});