关闭方法的jquery orangeBox不起作用

时间:2011-09-20 08:14:59

标签: jquery

我正在使用orangeBox lightbox并在页面加载时自动加载视频 - 效果很好。

我想要发生的事情是,当视频(在orangeBox中)关闭时 - 页面上会发生其他事情,但我无法使用on-close方法工作。
由于某种原因,该方法会在页面加载时触发,当我尝试将其绑定到ob窗口时 - 什么都不会触发。

有人可以看看我有什么 - 也许我说错了吗?

这是我的代码:

$(function(){
    function autoOpen(){
        $('#autoOpen').orangeBox('create');
    }

    function checkOB(){
        if ($("#ob_window").length) {alert("OB closing");}
    }

    function checkOB2(){
        alert("OB closing");
    }

    function starting(){
        alert("OB starting");
    }

    $(document).bind('oB_closing', checkOB());
    $(document).bind('oB_closed', checkOB2());

    $(document).bind('oB_init', starting());
    setTimeout(autoOpen,500); 
});

jsFiddle live demo

谢谢!

1 个答案:

答案 0 :(得分:0)

你需要传递函数"指针",而不是它的返回值:

$(document).bind('oB_closing', checkOB);
$(document).bind('oB_closed', checkOB2);

更新了小提琴:http://jsfiddle.net/qPEPB/3/

通过向函数名称添加(),您只需执行它们,并将它们的返回值指定为事件处理程序。

通过删除括号,它会在您将指针传递给函数时按预期工作,然后该指针由orangeBox的内部代码使用。