单击从子函数返回父函数
Return parent function from child function on click
如何在单击时从子函数返回父函数?下面是一个示例代码:
function returnFunction() {
var output = false;
$('a').click(function() {
output = true;
});
return output;
}
var result = returnFunction();
结果总是错误的,因为在运行代码时没有发生点击。我怎么能做到这一点呢?
我的意图是调用弹出对话框,我希望在一个可以轻松加载的函数中包含所有逻辑,包括Confirm对话框的单击事件。
在脚本的其他地方,我会这样称呼它,例如:
// 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();
}
});
我知道jQueryUI对话框插件。但我现在想在没有它的情况下实现这一目标。
谢谢。
它的过度简化是:
在执行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/
编辑:
我提到全局变量是因为它们是一种选择,但它们通常是糟糕的风格。如果可能的话,尽量使用其他方式。
如果你想得到更多的帮助,请提供你正在尝试做什么的更多细节。
请尝试使用参数。向显示警报框的函数发送一个参数,根据参数显示不同的弹出警报,你试图做的事情不会奏效,因为这基本上是一个鸡蛋问题。
相关文章:
- ES6构造函数返回基类的实例
- 从函数返回角度承诺
- 如何从jquery函数返回变量
- 根据是否解析了 Promise 从函数返回值
- Javascript函数返回未定义
- 如果函数返回True,则显示Javascript按钮
- Google Sheet自定义函数返回0
- 从Ajax函数返回值
- 使用for循环从Javascript中的函数返回多个值
- 谷歌地图:函数返回未定义的值在console.log中运行良好
- 从函数中的函数返回数组时出错
- 如何从嵌套的API函数返回值
- 从Mongoose结果匿名函数返回父函数
- 函数返回错误'令牌{'
- Jquery函数返回订单问题
- Mocha/Chai测试链接到函数返回断言错误
- 从异步函数返回值
- 函数返回后更新变量
- 我如何才能继续'如果'语句来比较作为参数的多个函数返回值
- 将外部函数返回的id传递给内部函数