覆盖jQuery插件中使用的方法

时间:2012-01-16 18:14:25

标签: jquery jquery-plugins

我正在使用这个watermark jquery插件,但它有隐藏元素的问题,所以我找到了这个actual jquery插件来解决这个问题。

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

e_height = $elem.outerHeight();

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

...但是这会把两个插件耦合在一起......我希望有一个更清洁的解决方案。

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

到目前为止,这是我尝试过的(没有成功)(第二次尝试使用此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);

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

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

...那么如何将waterHeight()替换为水印插件中的actual('outerHeight')并让实际('outerHeight')作用于$('。thing')...或$ elem,in水印插件?

0 个答案:

没有答案