gpt4 book ai didi

javascript - 从回调 javascript 函数接收值

转载 作者:行者123 更新时间:2023-11-28 05:49:37 26 4
gpt4 key购买 nike

我在以下编程场景中遇到问题

我想在删除标签之前确认删除标签,这样当用户确认消息时,标签就会被删除。

我面临的是由于异步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

最佳答案

我总是会从 beforeTagRemoved 回调返回 false 并在其中调用 $.confirm 。在 $.confirm 的 confirm 回调中,我将手动触发标签删除

更新:var isConfirmed = false;

beforeTagRemoved: function (evt, ui) {

$.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) {
isConfirmed = true;
// trigger removing with isConfirmed set to true
$("#myTags").tagit("removeTagByLabel", "my-tag");
},
cancel: function(button) {
isConfirmed = false;
},
confirmButton: "Yes",
cancelButton: "No",
confirmButtonClass: "btn-danger",
});
return isConfirmed;
},

关于javascript - 从回调 javascript 函数接收值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38185226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com