覆盖jQuery .val()函数?

前端之家收集整理的这篇文章主要介绍了覆盖jQuery .val()函数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
有没有办法轻松覆盖jQuery的val()函数

我想覆盖它的原因是,我想在每次为一个元素设置一个值时添加一些处理。我不想再创建一个自定义值设置器,例如myVal()。

解决方法

您可以存储对原始val函数的引用,然后覆盖它并进行处理,稍后通过调用调用它,以使用正确的上下文:
(function ($) {
  var originalVal = $.fn.val;
  $.fn.val = function(value) {
    if (typeof value != 'undefined') {
      // setter invoked,do processing
    }
    return originalVal.call(this,value);
  };
})(jQuery);

注意,你可以区分getter调用$(selector).val();和一个setter调用$(selector).val(‘new value’);只是通过检查值参数是否未定义。

猜你在找的jQuery相关文章