继承人我的链接:
http://tinyurl.com/6j727e
如果单击test.php中的链接,它将在模式框中打开,该框使用jquery'facebox'脚本.
我正在尝试对此框中的点击事件采取行动,如果你查看test.php的来源,你会看到我试图在模态框中找到链接.
$('#facebox .hero-link').click(alert('click!'));
但是,它不会检测到点击,奇怪的是,当页面加载时,click事件会运行.
然而,关闭按钮的内置点击事件会关闭盒子,我怀疑我的本土点击事件是以某种方式被阻止的,但我无法弄明白.
有人可以帮忙吗?通常情况下,它是项目的最后一部分,它始终如一地保持着我;)
首先,您获取文档加载警报的原因是该#click
方法将函数作为参数.相反,您传递了返回值alert
,它立即显示警告对话框并返回null.
事件绑定不起作用的原因是因为在文档加载#facebox .hero-link
时尚不存在.我认为你有两个选项可以帮助你解决这个问题.
选项1)仅在显示facebox后才绑定click事件.就像是:
$(document).bind('reveal.facebox', function() { $('#facebox .hero-link').click(function() { alert('click!'); }); });
选项2)研究使用jQuery Live Query插件
Live Query利用jQuery选择器的强大功能,通过绑定事件或自动神奇地触发匹配元素的回调,即使在页面加载和DOM更新后也是如此.
当jQuery Live Query识别到Facebox修改了DOM时,它将自动绑定click事件.那么你应该只写这个:
$('#facebox .hero-link').click(function() { alert('click!'); });