我正试图在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对象上会出现某种兼容性问题。
答案 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()
或其他任何内容。