【发布时间】:2016-07-04 12:50:56
【问题描述】:
我遇到以下编程场景的问题
我想在标签被删除之前确认标签的删除,所以当用户确认消息时,标签将被删除。
我面临的是由于异步js回调,回调函数不返回真值并返回null。
这里是代码
$(document).ready(function () {
$("#categories").tagit({
allowSpaces: true,
beforeTagRemoved: function (evt, ui) {
var isDeleted;
$.confirm({
title:"Deactivate confirmation",
text:"Are you sure you want to deactivate this idea? Users will not be able to see this idea any more.",
confirm: function(button) {
isDeleted = true;
},
cancel: function(button) {
isDeleted = false;
},
confirmButton: "Yes",
cancelButton: "No",
confirmButtonClass: "btn-danger",
});
return isDeleted; // here is the problem, it returns null due to callback $.confirm function
},
afterTagRemoved: function (evt, ui) {
$.ajax({
url: "/admin/categories/",
type: "POST",
data: '_method=delete&' + 'category=' + $("#categories").tagit('tagLabel', ui.tag) + '&_token={{csrf_token()}}',
success: function (data) {
if (data['status'] == 'success') {
$(".box-footer").html(
'<div class="alert alert-success alert-dismissible">' +
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' +
data['message'] +
'</div>');
}
else {
$(".box-footer").html(
'<div class="alert alert-danger alert-dismissible">' +
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' +
data['message'] +
'</div>');
}
}
});
},
afterTagAdded: function (evt, ui) {
if (!ui.duringInitialization) {
$.ajax({
url: "/admin/categories/",
type: "POST",
data: '_method=post&' + 'category=' + $("#categories").tagit('tagLabel', ui.tag) + '&_token={{csrf_token()}}',
success: function (data) {
console.log(data);
if (data['status'] == 'success') {
$(".box-footer").html(
'<div class="alert alert-success alert-dismissible">' +
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' +
data['message'] +
'</div>');
}
else {
$(".box-footer").html(
'<div class="alert alert-danger alert-dismissible">' +
'<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>' +
data['message'] +
'</div>');
}
}
});
}
}
});
});
知道消息确认后如何解决问题并删除吗?
使用的库:Tagit.js、jquery.confirm.js
【问题讨论】:
标签: javascript jquery jquery-plugins