如何有条件地关闭jQuery覆盖?

如何有条件地关闭jQuery覆盖?,jquery,callback,overlay,conditional,Jquery,Callback,Overlay,Conditional,我为jQuery覆盖提供了一个自定义关闭按钮。 单击此按钮时,我希望验证覆盖中的表单,并在且仅当表单有效时关闭覆盖 示例(不起作用…无论发生什么情况,始终关闭) 我怎样才能做到这一点呢?你需要知道的一切都可以在这里找到 您似乎正在使用。查看您可能需要将onBeforeClose而不是onClose onBeforeClose在覆盖关闭之前 当覆盖关闭时,onClose 不确定这是否适用于插件,但可能是一些伪代码的开始 $('.trigger[rel]').overlay( { close:

我为jQuery覆盖提供了一个自定义关闭按钮。
单击此按钮时,我希望验证覆盖中的表单,并在且仅当表单有效时关闭覆盖

示例(不起作用…无论发生什么情况,始终关闭)


我怎样才能做到这一点呢?

你需要知道的一切都可以在这里找到

您似乎正在使用。查看您可能需要将
onBeforeClose
而不是
onClose

onBeforeClose
在覆盖关闭之前
当覆盖关闭时,
onClose

不确定这是否适用于插件,但可能是一些伪代码的开始

$('.trigger[rel]').overlay(
{
   close: '.ovclosebutton',
   onBeforeClose: function()
   {
      if( validateSomething() )
          return true; //let the overlay close by default.
      else{
          displayErrorInOverlayButDontCloseIt();
          return false; //block the close
      }
   }
});
查看,您应该能够使用
onBeforeClose

事件前后使用这些工具 提供onBefore事件和 在执行某些操作之前发生,并且 此时发生的on事件 (或在)行动发生后。你 可以将自定义功能绑定到 这些事件。所有工具都提供了这样的功能 事件,它们共享一个共同的命名 政策。onBefore事件提供 你有取消的可能吗 行动


真的!关闭后立即触发
onClose
事件。请改用
onBeforeClose
。谢谢!我的错误是没有从onBeforeClose函数返回任何内容。当我按照Mark&Akarun的建议对它进行修改时,它运行得非常完美。
$('.trigger[rel]').overlay(
{
   close: '.ovclosebutton',
   onBeforeClose: function()
   {
      if( validateSomething() )
          return true; //let the overlay close by default.
      else{
          displayErrorInOverlayButDontCloseIt();
          return false; //block the close
      }
   }
});