我刚刚快速搜索了一下如何在 JQuery 中扩展函数,而且,我不知道我在做什么。我想总体上理解,但在这个特定的实例中,我想扩展 .val() 函数以向所有内容添加触发“更改”事件,因为默认情况下隐藏输入等某些元素不会这样做。换句话说,这个:
$('#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);
非常感谢任何帮助,因为这显然是我需要从概念上理解的东西。谢谢!