【问题标题】:JavaScript function fired?JavaScript 函数被触发?
【发布时间】:2012-03-17 09:24:20
【问题描述】:

我想问一些可能有问题的问题,但我不确定。

有没有办法知道何时执行特定函数以运行代码示例?我喜欢把它变成一个活动。

我的问题是厚盒子。我喜欢根据显示的图像调整厚框的大小。

为此,我需要知道何时执行厚框。

有什么想法吗?

【问题讨论】:

标签: javascript jquery thickbox


【解决方案1】:

Thickbox 使用全局函数,因此您可以执行以下操作:(正如@alex 建议的那样。)

(function($) {
    var original = tb_show;
    tb_show = function () {
        $(document).trigger('tb_show');
        return original.apply(this, arguments);
    }
})(jQuery);

那么你就可以绑定事件了:

$(document).bind('tb_show', function() {
    //event handler
});

【讨论】:

    【解决方案2】:

    您可以重载厚盒插件调用。

    我将假设它是在带有 thickbox() 的集合上调用的,例如$('.container img').thickbox().

    (function($) {
    
        var original = $.fn.thickbox;
    
        $.fn.thickbox = function() {
            // Whatever you need to do here.
            return original.apply(this, arguments);
        }
    
    })(jQuery);
    

    现在,当你打电话时......

    $('.container img').thickbox()
    

    ...代码将在将控制权交给原始函数之前调用您的新函数。

    你可以在上面写着// Whatever you need to do here.的地方做任何你想做的事:)

    【讨论】:

    • 不幸的是看起来不起作用:(。我在 return original.apply(this, artguments); 之前尝试了 "console.log('Hello');" 没有响应:(
    • @MerianosNikos 记住我做了一个假设。厚箱怎么称呼?
    • 没关系,我知道 :) xaxaxa。如您所见,我已经完成了评级;)。我已经加载了 WordPress 默认的厚盒实现,现在允许我调整它的大小。 :(
    【解决方案3】:

    我不是 JS 开发人员,但您可以创建一个回调函数,并使其在执行该特定函数时执行。

    你可以在这里找到一个很好的解释:JavaScript Callback Scope

    【讨论】:

    • 这样可以不影响thickbox插件的源代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-04
    • 2012-07-08
    • 1970-01-01
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多