gpt4 book ai didi

javascript - 在 JavaScript 类中添加回调功能

转载 作者:行者123 更新时间:2023-12-02 20:01:36 24 4
gpt4 key购买 nike

我正在尝试创建一个 JavaScript 类,它打开一个 jQuery 对话框并允许用户选择一个选项,然后在回调中返回所选值。

...类似于 jQuery Alert Dialogs做吧。

jPrompt(message, [value, title, callback])

jPrompt('Type something:', 'Prefilled value', 'Prompt Dialog', function(r) {
if( r ) alert('You entered ' + r);
});

Here is a DEMO到目前为止我所拥有的。但如果您注意到,该值会立即设置,并且我希望它等到用户单击“确定”。如果用户单击“取消”,则它应该返回 null 或空字符串。

这是我的Javascript 类:

var namespace = {};
(namespace.myChooser = function () {
var _dialog = null;
/**
* Function : onButtonCancel
*/
function onButtonCancel() {
_dialog.dialog("close");
return null;
}
/**
* Function : onButtonOK
*/
function onButtonOK() {
_dialog.dialog("close");
}
/**
* Function : Initialize
*/
function Init() {
var dialog_options = {
modal: false,
disabled: false,
resizable: false,
autoOpen: false,
//height: 460,
maxHeight: 300,
zIndex: 500,
stack: true,
title: 'My Chooser',
buttons: { "OK": onButtonOK, "Cancel": onButtonCancel }
};
_dialog = $("#myDialog");
// create dialog.
_dialog.dialog(dialog_options);
_dialog.dialog("open");
}

return {
Choose: function Choose() {
Init();
var myChoice = $("#myOptions").val();
return myChoice;
}
}
}());

我希望能够做这样的事情:

namespace.myChooser.Choose(function (myChoice) {
$("span#myChoice").text(myChoice);
});

解决方案:这就是最终做到的:

$(document).ready(function () {

$('#myButton').click(function () {
namespace.myChooser.Choose(function (x) {
console.log(x);
});
});

});

var namespace = {};
(namespace.myChooser = function (callback) {
function _show(callback) {
var dialog_options = {
modal: false,
disabled: false,
resizable: false,
autoOpen: false,
//height: 460,
maxHeight: 300,
zIndex: 500,
stack: true,
title: 'My Chooser',
buttons: {
"OK": function () {
if (callback) callback("OK");
},
"Cancel": function () {
if (callback) callback("Cancel");
}
}
};
_dialog = $("#myDialog");
// create dialog.
_dialog.dialog(dialog_options);
_dialog.dialog("open");
}

return {
Choose: function (callback) {
_show(function (result){
if (callback) callback(result);
});
}
}
}());

最佳答案

Choose: function Choose(cb) {
Init();
var myChoice = $("#myOptions").val();
return cb(myChoice);
}

应该做你想做的

关于javascript - 在 JavaScript 类中添加回调功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7904988/

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