gpt4 book ai didi

javascript - 单击时从子函数返回父函数

转载 作者:行者123 更新时间:2023-11-30 18:20:38 24 4
gpt4 key购买 nike

如何在点击时从子函数返回父函数?这是一个示例代码:

function returnFunction() {

var output = false;

$('a').click(function() {

output = true;

});

return output;

}

var result = returnFunction();

结果将始终为 false,因为在运行代码时并未发生点击。我怎样才能使这项工作成功?

我的目的是调用弹出对话框,我希望将所有逻辑都放在一个可以轻松加载的函数中 - 包括“确认”对话框的点击事件。

例如,在脚本的其他地方我会这样调用它:

// Menu click triggers the dialog
$('a').click(function(e) {
// The function displays the dialog and returns the click events of the dialog
var result = returnFunction();
// If result was false, we'll prevent the menu access, for example
if (!result) {
e.preventDefault();
}
});

我知道 jQuery UI 对话框插件。但我现在想在没有它的情况下实现这一目标。

谢谢。

最佳答案

它的过度简化是:

在执行 javascript 时一切都停止(包括滚动和点击超链接)。这意味着您不能“暂停”脚本,直到有人点击链接。

解决这个问题的典型方法是回调函数:

function my_callback(some, arguments) {
// you can do whatever in here: an ajax load, set a global variable, change some of the page, ...
console.log(some, arguments);
alert(some + " " + arguments);
}

function returnFunction(callback, param) {
var output = false;
$('a').click(function() {
callback(param, "world");
});
}

returnFunction(my_callback, "hello");

演示在 http://jsfiddle.net/UnBj5/

编辑:

我确实提到了全局变量,因为它们是一个选项,但它们通常是糟糕的风格。如果可能,请尝试使用其他方式。

如果您需要更多帮助,请提供有关您尝试执行的操作的更多详细信息。

关于javascript - 单击时从子函数返回父函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12111277/

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