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

时间:2011-08-18 21:37:59

标签: javascript jquery fancybox

此默认代码正常运行:

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

但我想使用委托:

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

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

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

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

我也尝试使用'live',但这也不起作用..

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

对此的任何帮助都非常赞赏..

1 个答案:

答案 0 :(得分:1)

只需更改代码即可引用代理中的a元素:

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