【发布时间】:2014-01-22 17:47:18
【问题描述】:
我想在我的网站上创建一个自定义确认框。
- 能否将事件处理程序绑定到匿名函数中。
- javascript 会等待返回值还是在 执行中超时/暂停。
- 是否可以使用确认框 延迟对象?我很难把如何 延迟对象工作以及如何实现它们。会以下 理论上可行吗?
HTML
<div id='box'>
<button id='confirm'></button>
</div>
<button id='startConfirmation'></div>
javascript (jquery)
$('#startConfirmation').click(function()
{
if(buttonClicked())
{
//do stuff
}
});
function buttonClicked()
{
return $('#confirm').click(function()
{
return true;
});
}
【问题讨论】:
-
恐怕这不可能。好吧,有一些可怕的、骇人听闻的方法,但我建议你硬着头皮研究使用回调函数。一旦你了解了异步的做事方式,你就永远不会回头。
-
不,这不是事件处理程序的工作方式。如果您想等待,我建议您使用
confirm -
return value in jQuery event handlers 用于停止事件的传播。在您的示例中,
buttonClicked函数的返回值只是 jQuery 对象,它将与return $('#confirm');相同,除非您将事件处理程序也附加到该对象。 -
不,这不起作用,因为代码不会等到按钮被点击。
-
在伪代码中,你真正想要的是...
$('#startConfirmation').click(function() { showConfirmationDialog(); });和$('#confirm').click(function() { // do stuff here });
标签: javascript jquery