覆盖 jQuery 插件方法,默认情况下和单个实例

发布于 2024-08-28 14:30:12 字数 274 浏览 6 评论 0原文

基本问题是:如何在不编辑原始插件文件的情况下执行插件方法的基本覆盖?

是否可以为特定实例创建覆盖:

示例: rtf 插件使用:

$('selector').wysiwyg('setContent',newContent);

为了将 rtf 文本显示为只读,我希望将相同的方法应用于 div 而不是 IFRAME 的主体,

我想用我自己的代码覆盖原始的“setContent”,只需对于这一元素。

谢谢

The basic question is: How do I perform a basic override of a plugin method without editing the original plugin file?

Is it possible to create an override for a specific instance:

Example:
An rtf plugin uses:

$('selector').wysiwyg('setContent',newContent);

In order to display the rtf text as readonly I would like for the same method to be applied to a div instead of the body of the IFRAME

I would like to overwrite the original 'setContent' with my own code, just for this one element.

Thanks

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

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

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

腹黑女流氓 2024-09-04 14:30:12
(function($){

var _oldcss = $.fn.css;

$.fn.css = function(prop,value){

    if (value.toLowerCase() === 'somecolor') {
       return _oldcss.call(this,prop,'#EA7E5D');
    } else {
       return _oldcss.apply(this,arguments);
    }
};
})(jQuery);

您可以轻松地以这种方式覆盖(我喜欢称之为半挂钩)函数。
在此示例中,您覆盖 .css() jQuery 函数并返回自定义值
您的值等于“somecolor”,否则,将调用原始函数
通过了论点。

(function($){

var _oldcss = $.fn.css;

$.fn.css = function(prop,value){

    if (value.toLowerCase() === 'somecolor') {
       return _oldcss.call(this,prop,'#EA7E5D');
    } else {
       return _oldcss.apply(this,arguments);
    }
};
})(jQuery);

You can easily overwrite (I like to call it semi-hooking) functions in that manner.
In this example, you overwrite the .css() jQuery function and return a custom value
of your value equals 'somecolor', otherwise, the original function is called with
passed arguments.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文