Object.defineProperty和Proxy都无法做到的样子,就是无论是用户选择了下拉框,还是自己用js在另外的地方强制改变select的值(select.value = 1,这时候change是无法触发的);都能触发的办法,有没有呢。Object.observe已经废弃了所以无法测试。
1 回答

慕莱坞森
TA贡献1810条经验 获得超4个赞
如果用js改变的地方少的话 改变的时候调一下函数就行了
多的话就用下面监听 但是这样的话 就不能直接select.value=1跳到option为1的位置了
function def(obj,key,value){
Object.defineProperty(select,"value",{
get:function (){
return value;
},
set:function (newvalue){
func();//调用函数
value = newvalue;
}
});
}
def(select,"value",select.value)
添加回答
举报
0/150
提交
取消