2009-11-17 45 views
1

我一直无法从simplemodal中捕捉onclose。如果可以的话,我是新来的jQuery,请给我一个手...如何获得使用SimpleModal的回调

<a href="http://url/" onclick="$(this).modal({width:833, height:453}).open(); return false;"> 

的作品,但我想调用javascript函数,每当模态对话框关闭。我如何附加,说updateTable();上关闭事件?

我已经试过

<a href="" onclick="$(this).modal({onClose: alert(1);$.modal.close();}).open();"

和这一切stupd变化,但说实话看着示例页面嵌套函数只让我头晕目眩(第二个例子也有HREF,但它不让我张贴在这里)....

回答

3

如果我理解你正确地要

  • 点击一个链接(如ID为唱首歌)
  • 由URL在此<a href="...">标签的href定义的页面应该是情态动词的内容
  • 当用户关闭要触发一些动作和关闭模式的模态

HTML:

<a href="http://www.google.com" id="clicker">Click me!</a> 

的JavaScript

var c = function closer() { 
    $.modal.close(); 
    alert("Done!"); 
} 
$(document).ready(function() { 
    $("#clicker").click(function() { 
     $.modal(
      '<iframe src="'+this.href+'" width="833" height="453">asd</iframe>', 
      {onClose:c} 
     ); 
     return false; 
    }); 
}); 

检查http://jsbin.com/ofimi的工作示例

+0

太棒了!终于明白了!谢谢! – Roy 2009-11-18 17:06:58

0

首先,你不必在使用jQuery时添加onclick属性。 假设

<a id="clicker" href="http://url/" >Click</a> 

然后

$(document).ready(function(){ 
     $("#clicker").click(function(){ 
      $(this).modal({width:833, height:453, onClose: function(){ 
      //your code here}}) 
      .open(); 
      return false; 
     }); 

}); 

的$(这)参考实际上指的是一个标签,也许你可能想使用一个div称为对话是这样的:

<div id="dialog"></div> 

并将jQuery更改为

$("#dialog").modal(...) 

更新:根据您的评论。尝试这个。

<head> 
     <!-- Include your script tags here to load the jQuery and simplemodal scripts --> 
     <script type="text/javascript"> 
      $(document).ready(function(){ 
       $("#clicker").click(function(){ 
       $("#dialog").modal({onClose: function(){ 
        alert("Closing"); 
       } 
       }); 
       return false; 
       }); 
      }); 


     </script> 

     </head> 
     <body> 
      <div id="dialog"></div> 
      <a href="#" id="clicker">Click</a> 
     </body> 
+0

感谢您的帮助......不使用的onClick必将使代码更简洁,但遗憾的是它没有运行我的代码当我关闭模式...我尝试了一个简单的 alert('hello'); 它不工作... – Roy 2009-11-17 22:36:08

+0

请原谅我的无知,但为什么我想要一个div?我加载的内容是外部的,在模式内部,它获得了clicker href上的所有内容,并将其作为iframe加载。我所需要做的就是知道用户何时关闭对话框,以便我可以刷新页面上的内容。 – Roy 2009-11-17 22:39:58

+0

原始代码中的$(this)指的是链接的标签。它就好像你正在把链接变成模态对话框,我怀疑是你想要的。你想使用另一个容器,例如div。否则,你可以使用任何你喜欢的其他容器。 – 2009-11-17 22:48:59