在click事件上使用委托来加载fancybox

using delegate on click event to load fancybox

本文关键字:加载 fancybox click 事件      更新时间:2023-09-26

默认代码运行正常:

$('#headerLink').fancybox({
    'ajax' : {type  : "GET" }
});

但是我想使用delegate:

$('#header').delegate('#headerLink', 'click', function(){
    $.fancybox({
        'ajax' : {type : 'GET'}
    });
});

它似乎首先加载,但它只是显示这条消息,而不是内容:"请求的内容无法加载。请稍后再试。"

然后它卸载,只是重定向到url的链接。

我尝试将语法更改为$(this).fancybox({ ....

我也试过使用'live',但这也不起作用。

$('#headerLink').live('click', function(){
    $.fancybox({
       'ajax' : {type   : "GET" }
});

如果有任何帮助,我真的很感激。

只需更改代码以引用委托中的a元素:

$('#header').delegate('#headerLink', 'click', function(){
    $(this).fancybox({             // $(this) refers to the link
        'ajax' : {type : 'GET'}
    });
    return false;
});