Jquery Live with facebox插件

时间:2009-10-13 09:46:50

标签: ajax facebox jquery

我正在尝试将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来调试代码。

3 个答案:

答案 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。