三个这样的函数 样子差不多 应该怎么合并呢 这样写太麻烦了 谢谢
oIpt1.onblur=function(){
var oV1=oIpt1.value;
if (oV1=='') {
oIpt1.style.border='1px solid red';
}
else{
oIpt1.style.border='';
}
}
oIpt2.onblur=function(){
var oV2=oIpt2.value;
if (oV2=='') {
oIpt2.style.border='1px solid red';
}
else{
oIpt2.style.border='';
}
}
oIpt3.onblur=function(){
var oV3=oIpt3.value;
if (oV3=='') {
oIpt3.style.border='1px solid red';
}
else{
oIpt3.style.border='';
}
}
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
==》
怎么没人想到用this。 - -!不就变成一个函数了吗
完整代码
没有运行过不知道可不可以,反正避免重复的一个基本思路就是把变的部分放到参数里。
使用一个元素包含这三个元素,然后把这个事件定义在父元素上面,也就是通常说的事件代理或者事件委托,可以参考文章:http://www.cnblogs.com/craftsman-gao/p/4811845.html。关于事件代理原理,可以参考:http://www.cnblogs.com/craftsman-gao/p/4937700.html。
初看以为提取‘变化’的部分作为参数即可,细看变化的部分也跟外部的元素一致,于是想到了下面的方法
不过看最后绑定的时候的样子,貌似还有优化的空间
直接用jQuery,获取元素,然后里面用$this
使用 GoF 策略模式 封装一下!
this, 封装. 不需要考虑那么多