重写 jQuery 插件中使用的方法
我正在使用这个 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论