FancyBox,在窗口加载/点击时获取ajax

时间:2011-09-26 21:26:36

标签: jquery ajax fancybox

我正试图在ajax调用后获得一个fancybox窗口来点击。

我能做得很好
$(document).ajaxStop(function() { 

    //FancyBox image zoom functionality jQuery script
    $("a.aboutContentImage").fancybox({
        'zoomOpacity': true,
        'zoomSpeedIn': 300,
        'zoomSpeedOut': 300,
        'overlayShow': true,
        'frameWidth': 800,
        'frameHeight': 600
    }); 
});

我应该注意,在ajax调用之前,页面上不存在a.aboutContentImage

然后在打开窗口后,我需要从ajax调用中加载一些文本。我试过了

$("a.aboutContentImage").live("click", function(e) {

    // ajax here
});

但是尝试将事件侦听器放在fancybox对象上会出现某种兼容性问题。

1 个答案:

答案 0 :(得分:2)

首先,为什么不将文本添加到图像标题? Fancybox会自动将标题添加到标题中。如果您需要执行其他操作,请尝试使用Fancybox onComplete回调(ref)?我没有测试过这个,但它应该可以工作:

$(document).ajaxStop(function() { 
  //FancyBox image zoom functionality jQuery script
  $("a.aboutContentImage").fancybox({
    'zoomOpacity': true,
    'zoomSpeedIn': 300,
    'zoomSpeedOut': 300,
    'overlayShow': true,
    'frameWidth': 800,
    'frameHeight': 600,
    'onComplete' : function(){
      // do whatever here
      var txt = $('#text').text();
      $('#fancybox-title-float-main')
        .append(txt)
        .show();
    }
  }); 
});

添加到#fancybox-title-float-main会将文本添加到title属性中的任何内容的末尾。因此,您可能希望使用.html()代替.append()或其他任何内容。