我刚刚做了一个关于如何在JQuery中扩展函数的快速谷歌,以及我不知道我在做什么。我一般都想了解,但在这个特定的例子中,我想扩展.val()函数来为所有事物添加一个触发器'change'事件,因为默认情况下隐藏输入等特定元素不会这样做。因此,换句话说,这样的:JQuery:扩展.val()包含.trigger()
$('#element').val('newval');
将自动变成这样:
$('#element').val('newval').trigger('change');
这里是我的尝试......它打破我的网页,但我希望我接近:
(function($, input){
var oldValFn = $.fn.val;
$.fn.val = function() {
var ret = oldValFn.apply(this, arguments);
try {
$(this).val(input);
$(this).trigger('change');
}
catch(e)
{
console.log(e);
}
return ret;
}
$(this).val('newval');
})(jQuery);
任何帮助都非常感谢,因为这显然是我需要从概念上理解的东西。谢谢!
有没有需要设置'$(本).VAL(输入)'....除此之外,则是罚款http://jsfiddle.net/arunpjohny/RA88u/1/ –