如何在点击时从子功能返回父功能?这是一个示例代码:
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对话框插件。但我现在想要实现这一目标。
感谢。
答案 0 :(得分:2)
过度简化是:
执行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");
编辑:
我确实提到了全局变量,因为它们是一个选项,但它们通常是糟糕的风格。尽可能尝试使用其他方法。
如果您需要更多帮助,请提供您尝试做的更多详细信息。
答案 1 :(得分:0)
尝试使用参数。将参数发送到显示警报框的函数,根据参数显示不同的弹出警报,您尝试执行的操作将无法正常工作,因为它基本上是鸡蛋问题。