【问题标题】:fancybox 2 afterClose not triggeringfancybox 2 afterClose 没有触发
【发布时间】:2013-04-11 19:06:54
【问题描述】:

我在触发 afterClose fancybox 2.1.4 事件时遇到问题。

我有一个这样的初始化脚本

$.fancybox({
  maxWidth    : 900,
  maxHeight   : 600,
  fitToView   : false,
  width       : '70%',
  height      : '70%',
  autoSize    : false,
  closeClick  : false,
  openEffect  : 'none',
  closeEffect : 'none',
  afterClose  : function() {
    alert('Hi!');
    return;
  }
});

我有一个 DIV,它触发了一个用 HTML 数据填充 DIV 的函数

<div onclick="projectDetail('+project.id+')">View Details</div>

填充fancybox内容DIV的触发函数是这个

function proyectDetail(id) {
  var project = $('#project');

  var result = '<h2>Lorem ipsum dolor sit amet</h2>\
                 <p>\
                   Lorem ipsum dolor sit amet, consectetur adipiscing elit.\
                 </p>';
  project.append(result);

  $.fancybox(project);
}

问题是 afterClose 事件没有被触发!

我只需要点击那个div,打开fancybox并在fancybox关闭后清除内容,因为弹出窗口可能会填充不同的数据,具体取决于给定的项目ID。

感谢您的建议!

【问题讨论】:

  • 如果你的意思是在fancybox中打开和关闭project,当然不会触发afterClose,因为你还没有设置。

标签: jquery fancybox fancybox-2


【解决方案1】:

afterClose 不会被解雇,因为您没有设置任何内容。你这样打开fancybox

$.fancybox(project);

...但为了触发afterClose,您必须在该函数中将其设置为 API 选项,例如

$.fancybox(project, {
    afterClose: function () {
        alert("you have closed fancybox");
    }
});

JSFIDDLE

【讨论】:

    猜你喜欢
    • 2013-12-16
    • 1970-01-01
    • 2017-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多