解决方法
您可以存储对原始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’);只是通过检查值参数是否未定义。