作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想编写一个 jQuery“插件”,它本质上接受 CSS 类并拒绝将其添加到给定的选择器中。这可能吗?我无法弄清楚如何实际拦截 addClass
方法并在不进入 jQuery 源代码的情况下检查它 - 而且我对 javascript 的经验还不足以轻松地尝试这一点。另外,我通过 CDN 加载 jQuery,所以我不想在它的源代码中乱搞。
最佳答案
如果您接受硬编码拒绝类,则可以像这样覆盖它。您可以将其添加到任何地方,它只会使用增强的 addClass
函数“修补”jQuery。
http://jsfiddle.net/pimvdb/A8ePY/1/
(function($) {
// keep copy of original function
var old = $.fn.addClass;
$.fn.addClass = function(classes) {
var spl = classes.split(" ");
// remove denied class if present
if(spl.indexOf("denied") > -1) {
spl.splice(spl.indexOf("denied"), 1);
}
// pass everything to original function (altered classes plus other arguments)
return old.apply(this,
spl.concat([].slice.call(arguments, 1)));
};
})(jQuery);
关于jQuery, 'denyClass' 扩展受到追捧,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7071215/
我想编写一个 jQuery“插件”,它本质上接受 CSS 类并拒绝将其添加到给定的选择器中。这可能吗?我无法弄清楚如何实际拦截 addClass 方法并在不进入 jQuery 源代码的情况下检查它 -
我是一名优秀的程序员,十分优秀!