通过单击模态窗口内的锚点链接关闭colorbox模态窗口?

时间:2011-09-21 16:33:54

标签: jquery colorbox

我已经建立了一个锚链接 - 我试图让它成为当我点击这个锚链接(包含在颜色框模态窗口中)时它将关闭颜色框。

$(document).ready(function(){
     $('.newWindow a').click(function(){
          alert('hello world'); // checking to be sure click function is being called
         $.fn.colorbox.close(); 
     });
 });

我认为这会起作用..我可能做错了什么?

颜色框中加载的内容是页面上的隐藏div,而不是iframe。

编辑:我不知道为什么它不起作用。我见过别人的例子,就像我的一样。我注意到,当点击透明div以使用颜色框给出“景深”时,模态窗口将淡出/关闭。所以我将代码更改为:

 $(document).ready(function(){
     $('.newWindow a').click(function(){
         $('#DOMWindowOverlay').click(); // click overlay div and close colorbox
     });
 });

不是真正的修复 - 这是一种解决方法......但它确实有效!

4 个答案:

答案 0 :(得分:2)

凯尔,这对我来说很好看。通过在事件处理程序中返回false或使用preventDefault方法,确保您还取消了锚的默认操作。例如:

 $('.newWindow a').click(function(){
     $.colorbox.close();
     return false;
 });

可以使用.fn,(这是访问jQuery插件方法的标准方法),但任何colorbox都不需要它。

答案 1 :(得分:0)

.fn是什么意思?

尝试

$.colorbox.close()

答案 2 :(得分:0)

它不起作用,因为运行docReady时链接不存在。在将来,您可以执行以下两项操作之一:A)将您的单击处理程序放在jquery live()函数中(仍在docReady中),或者B)使用colorbox的onComplete选项创建单击处理程序(放置在对象文字中)在创建颜色框时发送。)

此外,正如Thorsten指出的那样,.fn部分不是必需的,因为colorbox的作者有远见来创建一个到$ .colorbox的链接。

答案 3 :(得分:0)

只需放置锚onclick="$('#registerDialog').dialog('close');">

其中registerDialog是模式对话框ID,例如data_dialog_id

@Html.ActionLink("Register", "Register", "Account", null, 
    new { @class = "openDialog",
          data_dialog_id = "**registerDialog**", 
          data_dialog_title = "btewary.blogspot.in" })