重写 jQuery 插件中使用的方法

发布于 2024-12-27 13:11:41 字数 1190 浏览 0 评论 0原文

我正在使用这个 watermark jquery 插件,但它存在隐藏元素问题,所以我发现这个 actual jquery 插件可以解决这个问题。

简单的修复方法是编辑水印插件(第 92 行):

e_height = $elem.outerHeight();

...

e_height = $elem.actual('outerHeight');

但这会将两个插件结合在一起...我希望有一个更干净的解决方案。

在另一个js文件中,我尝试覆盖水印插件中的outerHeight函数。

这是我到目前为止所尝试过的(没有成功)(使用这个SO答案的第二次尝试):

// 1st attempt    
$(document).ready(function(){
    $.fn.watermark.outerHeight = $(this).actual('outerHeight');
});

// 2nd attempt
(function($){
    var _old = $.fn.watermark.outerHeight;

    $.fn.watermark.outerHeight = function(){
        return _old.call(actual,'outerHeight');
    };
})(jQuery);

感觉就像鸡/蛋...outerHeight 和actual 都应用于元素:

$('.thing').outerHeight();
$('.thing').actual('outerHeight');

...那么如何在水印插件中将outerHeight() 替换为actual('outerHeight') 并让actual('outerHeight') 起作用$('.thing')...或 $elem,在水印插件中?

I'm using this watermark jquery plugin, but it has issue with hidden elements, so I found this actual jquery plugin to fix the issue.

The simple fix is to edit the watermark plugin (on line 92):

e_height = $elem.outerHeight();

to

e_height = $elem.actual('outerHeight');

...but that would couple the two plugins together...I'm hoping for a cleaner solution.

In another js file, I'm trying override the outerHeight function in the watermark plugin.

Here's what I've tried (without success) so far (2nd attempt using this SO answer):

// 1st attempt    
$(document).ready(function(){
    $.fn.watermark.outerHeight = $(this).actual('outerHeight');
});

// 2nd attempt
(function($){
    var _old = $.fn.watermark.outerHeight;

    $.fn.watermark.outerHeight = function(){
        return _old.call(actual,'outerHeight');
    };
})(jQuery);

Feels like chicken/egg...both outerHeight and actual are applied to an element:

$('.thing').outerHeight();
$('.thing').actual('outerHeight');

...so how do I replace outerHeight() with actual('outerHeight') in the watermark plugin and have actual('outerHeight') act on $('.thing')...or $elem, in the watermark plugin?

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文