Jquery Live 与 Facebox 插件

发布于 2024-08-07 02:06:53 字数 554 浏览 10 评论 0原文

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

I'm trying to use the jquery facebox plugin with live events (the official implemenatation, not the plugin).

My main page loads in a page via ajax. That remote page also has links to other remote pages which i would like to display in a popup dialog. I've been using the facebox plugin for this.

The below code doesn't work, and simply loads the remote page in to the viewport a a new page, not a popup.

<script type="text/javascript">
            jQuery(document).ready(function($) {

                $('a[rel*=facebox]').live("click", function() {
                    $('a[rel*=facebox]').facebox()
                });
            });
          </script> 

is this the correct way to use live events?

My development machine sadly consists of IE6 only[:(], so i can't use firebug to debug the code.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

离笑几人歌 2024-08-14 02:06:53

用 fabrik 评论补充 Kobi 的答案:

$('a[rel*=facebox]').live("mousedown", function() { 
    $(this).unbind('click'); //everytime you click unbind the past event handled.
    $(this).facebox();
});

所以,你可以防止 Facebook 增加事件。

归功于科比。

complementing Kobi answer with fabrik comment:

$('a[rel*=facebox]').live("mousedown", function() { 
    $(this).unbind('click'); //everytime you click unbind the past event handled.
    $(this).facebox();
});

so, you can prevent facebox multiply the events.

credits to kobi.

半衾梦 2024-08-14 02:06:53

我猜想 click 事件来得太晚,无法启动 Facebox。
这可能适用于 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();
});

I guess the click event is too late to start the facebox.
This might work with mousedown (seemed OK on my test, but it wasn't exactly the same)

$('a[rel*=facebox]').live("mousedown", function() { 
    $(this).facebox(); // this should do, you don't need all links
});

I would recommend this either. I suggest activating the facebox after you finish the AJAX call:

// sample code - you might use an other AJAX call
$('#dynamicDiv').load('...', {}, function(){
    $('#dynamicDiv a[rel*=facebox]').facebox();
});
把昨日还给我 2024-08-14 02:06:53

非常感谢,我遇到了麻烦,因为加载我的动态内容后
rel=facebox 似乎根本不起作用

我只是“重新激活”

jQuery(document).ready(function($) {
$('a[rel*=facebox]').facebox()

ajax.response 和瞧之后,我可以看到弹出的 Facebox 而不是链接中的页面。

非常感谢科比。

Thank you so much, I was having troubles, because after loading my dynamic content the
rel=facebox seemed not to work at all

I just "re activated"

jQuery(document).ready(function($) {
$('a[rel*=facebox]').facebox()
})

after the ajax.response and voilá I can see the facebox pop up instead of the page from the link.

Thank you a lot kobi.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文