我正在尝试将jquery facebox插件用于实时事件(官方实现,而不是插件)。
我的主页通过ajax加载到页面中。该远程页面还具有指向其他远程页面的链接,我想在弹出对话框中显示该页面。我一直在使用facebox插件。
以下代码不起作用,只是将远程页面加载到视口中的新页面,而不是弹出窗口。
<script type="text/javascript">
jQuery(document).ready(function($) {
$('a[rel*=facebox]').live("click", function() {
$('a[rel*=facebox]').facebox()
});
});
</script>
这是使用直播活动的正确方法吗?
我的开发机器遗憾地只包含IE6 [:(],因此我无法使用firebug来调试代码。
答案 0 :(得分:6)
用fabrik评论补充Kobi答案:
$('a[rel*=facebox]').live("mousedown", function() {
$(this).unbind('click'); //everytime you click unbind the past event handled.
$(this).facebox();
});
因此,您可以阻止facebox将事件相乘。
归功于kobi。
答案 1 :(得分:4)
我认为click
事件为时已晚,无法启动面板
这可能适用于mousedown
(在我的测试中似乎没问题,但它并不完全相同)
$('a[rel*=facebox]').live("mousedown", function() {
$(this).facebox(); // this should do, you don't need all links
});
我也会推荐这个。我建议你在完成AJAX调用后激活facebox:
// sample code - you might use an other AJAX call
$('#dynamicDiv').load('...', {}, function(){
$('#dynamicDiv a[rel*=facebox]').facebox();
});
答案 2 :(得分:1)
非常感谢你,我遇到了麻烦,因为加载了我的动态内容之后 rel = facebox似乎根本不起作用
我刚刚“重新启动”
jQuery(document).ready(function($){ $( '一个[相对* = facebox]')。facebox() })
在ajax.response和voilá之后我可以看到弹出的facebox而不是链接中的页面。
非常感谢kobi。