【发布时间】:2013-08-02 15:22:42
【问题描述】:
我要做的是更改特定元素的默认jquery方法。
例如,我想更改一些(不是全部)select 列表的方法val()。然后在必要时恢复。
我的第一次尝试是以下但不工作。
$('#list').val = function(){ alert('toto'); };
//and then
$('#list').val() //not work
解决方案
var old_val = $.fn.val;
$.fn.val = function(value){
//some condition to trigger
if (this.hasClass('someclass')){
//getter
if (value===undefined){
//do something to get the values
return val;
}
//setter
else {
//do something with the value
return this;
}
}
return old_val.apply(this, arguments);
};
【问题讨论】:
-
这是个坏主意,不会奏效。
-
@MightyPork 什么意思,改变方法val()?
-
你的最终目的是什么?
-
如在列出的副本中一样,如果您只想为该元素更改它,则需要缓存该元素。最好编写一个小插件来执行您想要执行的任何功能并改为执行此操作。
标签: jquery