今天遇到一个十分奇怪的问题,一个页面上有几个效果 有弹出层 遮罩层 input输入框 选项卡 等等都是常规的效果
用jQuery 实现的 结果测试的时候 IE7以上版本 和 FF Chrom等浏览器都好,就是IE6 弹窗效果怎么也不行 还报错 说是缺少括号。
开始怀疑是浏览器版本不好 因为我这个是做测试用的Mutiple IE 用 IE tester 也不行。。。交给别人调试一下 说调试好了 拿过来一看,果然可以弹出窗口了,可是输入框恢复初始值的效果却怎么也不行了,因为是自己写的插件 就怀疑是不是这个插件有问题呢?
1 $.fn.inputval=function(className){
2 var _this=$(this);
3 temval=$(this).val();
4 className= className || "";
5 _this.focus(function(){
6 if($(this).val()=="" || $(this).val()==temval) $(this).val("");
7 $(this).addClass(className);
8 })
9 .blur(function(){
10 if($(this).val()=="" || $(this).val()==temval) $(this).val(temval);
11 $(this).removeClass(className);
12 })
13 }
14 //搜索问题输入框
2 var _this=$(this);
3 temval=$(this).val();
4 className= className || "";
5 _this.focus(function(){
6 if($(this).val()=="" || $(this).val()==temval) $(this).val("");
7 $(this).addClass(className);
8 })
9 .blur(function(){
10 if($(this).val()=="" || $(this).val()==temval) $(this).val(temval);
11 $(this).removeClass(className);
12 })
13 }
14 //搜索问题输入框
15 $("input.txt").inputval();
于是对这个插件 改了又改。。。结果是IE6可以了 其他浏览器不行 。。。折腾来折腾去 就是不行。最后一想 是不是编码问题呢? 页面是UTF-8 的 脚本是 GB2312的 于是就转换了一下。
这下好了! 不治自愈! 哎。。。。白费了半天功夫啊。
总结: 页面 和页面所调用的脚本要编码一致,jQuery 的脚本文件 涉及到lode 等方法的 最好采用 utf-8 编码