Javascript 使用“单击时委派”事件加载fancybox
此默认代码工作正常:Javascript 使用“单击时委派”事件加载fancybox,javascript,jquery,fancybox,Javascript,Jquery,Fancybox,此默认代码工作正常: $('#headerLink').fancybox({ 'ajax' : {type : "GET" } }); 但我想使用委托: $('#header').delegate('#headerLink', 'click', function(){ $.fancybox({ 'ajax' : {type : 'GET'} }); }); $('#header').delegate('#headerLink', 'click', f
$('#headerLink').fancybox({
'ajax' : {type : "GET" }
});
但我想使用委托:
$('#header').delegate('#headerLink', 'click', function(){
$.fancybox({
'ajax' : {type : 'GET'}
});
});
$('#header').delegate('#headerLink', 'click', function(){
$(this).fancybox({ // $(this) refers to the link
'ajax' : {type : 'GET'}
});
return false;
});
它似乎在开始加载,但它只显示以下消息,而不是内容:
“无法加载请求的内容。请稍后再试。”
然后它卸载,并重定向到链接的url
我尝试将语法更改为$(this).fancybox({….
我也尝试过使用“live”,但这也不起作用
$('#headerLink').live('click', function(){
$.fancybox({
'ajax' : {type : "GET" }
});
非常感谢您在这方面提供的任何帮助。只需将代码更改为引用代理中的
元素即可:
$('#header').delegate('#headerLink', 'click', function(){
$.fancybox({
'ajax' : {type : 'GET'}
});
});
$('#header').delegate('#headerLink', 'click', function(){
$(this).fancybox({ // $(this) refers to the link
'ajax' : {type : 'GET'}
});
return false;
});
只需将代码更改为引用代理中的a
元素:
$('#header').delegate('#headerLink', 'click', function(){
$.fancybox({
'ajax' : {type : 'GET'}
});
});
$('#header').delegate('#headerLink', 'click', function(){
$(this).fancybox({ // $(this) refers to the link
'ajax' : {type : 'GET'}
});
return false;
});
我已经尝试过这种语法。唯一的区别是它在重定向之前没有加载错误消息。@grainne:只需执行一次返回false
来取消链接的defautt操作。更新了我的答案。谢谢。它几乎可以工作了……但现在的问题是,当链接被单击一次时,不会发生任何事情,它必须被单击2nd时间…知道为什么会发生这种情况吗?(我每次都刷新以测试这一点)我还尝试了event.preventDefault()我已经尝试过这种语法。唯一的区别是它在重定向之前没有加载错误消息。@grainne:只需执行一次返回false
来取消链接的defautt操作。更新了我的答案。谢谢。它几乎可以工作了……但现在的问题是,当链接被单击一次时,不会发生任何事情,它必须被单击2nd时间…知道为什么会发生这种情况吗?(我每次都刷新以测试这一点)我还尝试了event.preventDefault()