你能在jQuery中扩展val()函数吗?
有没有办法在jQuery中扩展val()函数。
基本上,我想要做的是设置一个类变量,如果有内容被动态输入到输入中。
通常会是这样的
var thisVal = 'Hello World'; $('#myInput').val(thisVal).addClass('dark');
如果有值,则告诉val()函数始终将类“dark”添加到输入中,如果它为空则将其删除。
可能?
尝试
$.fn.xval = function () { return this.toggleClass(arguments.length).val.apply(this, arguments); };
演示: http : //jsfiddle.net/mattball/v9YFu/
$.fn.darkVal = function (value) { return this.addClass('dark').val(value); };
你可以这样做:
var oldVal = $.fn.val; $.fn.val = function(value) { $(this).addClass("dark"); return oldVal.apply(this, arguments); };
但我强烈建议您不要使用它,因为设置元素的值与设置CSS属性无关。 val
设置值,就是这样。 你能做的是:
$("#someInput").change(function() { if ($(this).text().length > 0) { $(this).addClass("dark"); } else { $(this).removeClass("dark"); } });
每当更改值时,将调用您传递给更改的函数 – 以编程方式或由用户更改( 请参阅文档 )。 通过这种方式,代码变得更具可读性和可理解性,使调试更容易。