一、使用JQuery设置和改变CSS透明度 :
直接使用jQuery设置CSS透明度更直观更容易实现,因为你不需要考虑浏览器的兼容性,在IE下元素是否“haslayout”
$(".dropzone .dz-default.dz-message").css({ opacity: 0.5 }); // 所有浏览器有效您也可以使用下面的jQuery代码使一个元素动画透明:
代码:
$(".dropzone .dz-default.dz-message").animate({ opacity: 0.5 }, 1000, function() { // 动画完成,所有浏览器下有效 });
不管元素的透明度在动画开始时是多少,它都会渐变到透明度为“0.4”。动画的速度通过值“1000”设定,动画时间以毫秒为单位。代码中的最后一个属性是一个可选回调函数,将在动画完成后执行。
如果该元素的透明度在CSS中已经设定为“0.4”,那在动画运行的时候,你将不会发觉有任何不同,所以动画开始和最终透明度要有所不同。
二、表格单元格宽度的设定和强制折行规定
有时候报表的字段包含文字比较多,如果使用自动布局,表格会有滚动条,对宏观查看整表的数据不是很方便。这时候改用固定布局,强制折行可以解决问题。
所有浏览器都支持 table-layout 属性。该属性有三种取值:
auto 默认。列宽度由单元格内容设定。
fixed 按照你设定的表格宽度或列宽显示数据,不受内容本身宽度影响。
inherit 规定应该从父元素继承 table-layout 属性的值。
注释:任何的版本的 Internet Explorer (包括 IE8)都不支持属性值 "inherit"。
解决方式:CSS代码:
.table { table-layout: fixed; word-wrap: break-word; }
三、PHP去除数组重复元素
PHP数组去除重复内置函数有array_unique和array_flip。传统使用array_unique函数的效率较低。而array_flip函数比较快,速度提高五倍以上,因为该函数是将每个数组元素的key-value值交换,然后自动覆盖重复的键,再切换回来。
所以建议使用array_flip函数去重。写法:$arr = array_flip(array_flip($arr)); //经过两次可以删除重复元素。
四、jQuery Ajax数据格式json注意事项
Jquery1.4版本以后对json格式要求更加严格,如果设定dataType为json,一定要保证json格式符合json.org网站定义的格式才能执行success回调函数,否则执行onerror异常处理函数。跨域调用时,服务端会接收到一段$_GET['callback']的字符串。你需要在服务端将这段字符串拼接在需要返回的数据的前共同返回。例如在控制器函数中最后这样输出:echo $_GET['callback'] . '(' . json_encode($data) . ')';
JSON格式的大概注意点列一下:
1)键名称:用双引号括起
2)字符串:使用双引号括起
3)数字、布尔类型:不需要使用双引号括起
援引jQuery API 说明原文:"json": Evaluates the response as JSON and returns a JavaScript object. In jQuery 1.4 the JSON data is parsed in a strict manner; any malformed JSON is rejected and a parse error is thrown. (See json.org for more information on proper JSON
formatting.)
目前有许多免费的json在线验证器,如果不确定自己写的json格式是否标准,可以利用诸如JSONLint等在线校验工具,对json进行检验。一个不错的验证网站奉上:?u=http://www.bejson.com/index.php
如果ajax使用默认格式不强制定义json格式,则服务端echo内容不需要拼接$_GET['callback']的字符串,但是在回调函数中需要通过eval()函数将json字符串转换为js对象,这样返回的data才能以类似data.res的方式调用。eval加上圆括号的目的是迫使eval函数在评估JavaScript代码的时候强制将括号内的表达式(expression)转化为对象,而不是作为 语句(statement)来执行。举一个例子,例如对象{},如若不加外层的括号,那么eval会将大括号识别为JavaScript代码块的开始和结 束标记,那么{}将会被认为是执行了一句空语句。如:对json:{"sex":["man"],"address":["zjningbo"],"name":["cssrain"]} 执行eval函数: var jsObject=eval("("+json+")");得到的jsObject是({"sex":["man"],"address":["zjningbo"],"name":["cssrain"]}) 。
列出项目中的代码:
<script type="text/javascript"> $(function(){ $posarea = $(".posarea"); $postit = $(".posarea .ptit span"); $(".setpos").click(function(){ var rid = $(this).parent().siblings('td').eq(0).text(); var titt = $(this).parent().siblings('td').eq(1).text(); var tname = $.trim($(this).parent().siblings('td').eq(2).text()); var typelv; var os = $("#resos").val(); $("#resid").val(rid); $postit.text(titt); get_pos_data(rid,os); if(tname == '文章'){ typelv = 1; }else if(tname == '资源专题'){ typelv = 3; }else if(tname == 'PK'){ typelv = 4; } if(typelv){ $("#restype").val(typelv); }else{ alert("未获取到类型(a_type),请重试"); } $posarea.fadeIn(100); }); $(".closepos").click(function(){ $posarea.fadeOut(); }); $("#ajaxbtn").click(function(){ var rid = $("#resid").val(); var os = $("#resos").val(); var a_type = $("#restype").val(); update_pos_data(rid,os,a_type); $posarea.fadeOut(100); }); //查询状态信息 function get_pos_data(id,os){ var str = ""; $.ajax({ type : "post", url : "?c=wansha&a=get_pos&callback=?", //dataType : "json", data : {"id":id, "os":os}, success : function(msg) { msg = eval('(' + msg + ')'); if(msg.res === 1){ $.each(msg.data, function(i,record){ str += "<li><input type='checkbox' "; if(record.status == 1){ str += " checked='checked' "; } str += " /><span>" + record.title + "</span></li>"; }) $(".poscontent ul").html(str); } } }); } //更新状态信息 function update_pos_data(id, os, a_type){ var str = ""; var arr = [], currid, currval; $(".poscontent ul li").each(function(i,val){ var obj = new Object(); currid = val.id; if($(this).children("input:checkbox").attr("checked")){ currval = 1; }else{ currval = 0; } obj['posid'] = currid; obj['posstatus'] = currval; arr.push(obj); }); arr = JSON.stringify(arr);//序列化:将一个js对象或数组转换为一个包含 JSON 文本的字符串。 $.ajax({ type : "post", url : "?c=wansha&a=update_pos&callback=?", dataType : "json", data : {"id":id, "os":os,"status":arr,"a_type":a_type}, success : function(sucmsg) { if(sucmsg.res==1){ alert("保存成功"); //window.location.href="?c=wansha&a=list_article_test"; } else { alert("数据未更新或更新失败!"); } } }); } }); </script>