近期开发小点记录

来源:互联网 发布:android淘宝分类菜单 编辑:程序博客网 时间:2024/05/29 16:31

jQuery事件绑定时参数传递

事件绑定

1 使用事件名称

data = {k1: v1, k2: v2,...}dom.click(data, fn)

2 使用bind、live、trigger

data = {k1: v1, k2: v2,...}dom.bind(type, data, fn)dom.live(type, data, fn)dom.trigger(type, data)

jQuery里的事件绑定时,如果回掉函数无参数,直接使用回调函数名即可,不需要传递参数。但是如果是需要传递参数去调用回调函数,就需要使用其中的data选项,data其实是json对象,在回调函数中取的时候,只能通过当前的事件源来取,data是默认放在event中的,所以这里的data是eventdata,引用的时候也使用event.data.name,也就是说JQuery中的所有触发时间的方法,需要传递参数都可以通过eventdata对象来传递参数。示例如下:

$("select#test").change({msg: "ok"}, function(event) {     myHandler(event.data.msg); }); 

Kindeditor异步提交的内容获取

普通获取方式

// 取HTML内容html = editor.html();// 同步数据后可以直接取得textarea的valueeditor.sync();html = document.getElementById('editor_id').value; // 原生APIhtml = K('#editor_id').val(); // KindEditor Node APIhtml = $('#editor_id').val(); // jQuery// 设置HTML内容editor.html('HTML内容');

完善的配置

如果是异步提交,需要代码手动同步内容到textarea里面,再从textarea获取内容;或者直接使用创建后的editor获取html内容。最好的解决办法是,在创建editor时加入如下选项使得自动同步。

    KindEditor.ready(function (K) {        editor = K.create('#AContent', {            //...            //...其他选项            //...            afterBlur: function () { this.sync(); }        });    });

修改输入文本的样式

  1. 修改kindeditor的默认字体大小:
    kindeditor.js中搜索body,其中有设置字体的css代码
font: 12px/1.5 "sans serif",tahoma,verdana,helvetica;

这是默认字体和大小,可自行修改。这里 不仅设置“字体大小”,还可以设置”字体”、”背景色“、”默认字体颜色“等等。这里文本是以页面的形式加载到iframe中的。css:

  1. 自定义kindeditor的颜色块:
    kindeditor.js 的colorTable属性如下,可自行设置
colorTable : [['#E53333', '#E56600', '#FF9900', '#64451D', '#DFC5A4', '#FFE500'],['#009900', '#006600', '#99BB00', '#B8D100', '#60D978', '#00D5FF'],['#337FE5', '#003399', '#4C33E5', '#9933E5', '#CC33E5', '#EE33EE'],['#FFFFFF', '#CCCCCC', '#999999', '#666666', '#333333', '#000000']],

ajaxFileUpload使用

jQuery(function(){     $("#buttonUpload").click(function(){         //上传文件    $.ajaxFileUpload({        url:'upload.php',//处理图片脚本        secureuri :false,        fileElementId :'fileToUpload',//file控件id        dataType : 'json',        success : function (data, status){            if(typeof(data.error) != 'undefined'){                if(data.error != ''){                    alert(data.error);                }else{                    alert(data.msg);                }            }        },        error: function(data, status, e){            alert(e);        }})return false;  }) })

参数说明

1,url表示处理文件上传操作的文件路径,可以测试URL是否能在浏览器中直接访问,如上:upload.php
2,fileElementId表示文件域ID,如上:fileToUpload
3,secureuri是否启用安全提交,默认为false
4,dataType数据数据,一般选json,javascript的原生态
5,success提交成功后处理函数
6,error提交失败处理函数

需要了解相关的错误提示

1,SyntaxError: missing ; before statement错误
如果出现这个错误就需要检查url路径是否可以访问
2,SyntaxError: syntax error错误
如果出现这个错误就需要检查处理提交操作的PHP文件是否存在语法错误
3,SyntaxError: invalid property id错误
如果出现这个错误就需要检查属性ID是否存在
4,SyntaxError: missing } in XML expression错误
如果出现这个错误就需要检查文件域名称是否一致或不存在
5,其它自定义错误
可使用变量$error直接打印的方法检查各参数是否正确,比起上面这些无效的错误提示还是方便很多。

错误处理

在用ajaxfileupload时firebug报了一个“jQuery.handleError is not a function”的错误。解决办法:jQuery.handleError is not a function 报错原因是:
handlerError只在jquery-1.4.2之前的版本中存在,jquery-1.4.2之后的版本中都没有这个函数了。
因此在jquery高级版本中将这个函数添加上 。 该js代码段可以加在jquer.js或者ajaxfileupload.js中。

jQuery.extend({           handleError: function (s, xhr, status, e) {               if (s.error) {                   s.error.call(s.context || s, xhr, status, e);               }               if (s.global) {                   (s.context ? jQuery(s.context) : jQuery.event).trigger("ajaxError", [xhr, s, e]);               }           },           httpData: function (xhr, type, s) {               var ct = xhr.getResponseHeader("content-type"),         xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,         data = xml ? xhr.responseXML : xhr.responseText;               if (xml && data.documentElement.tagName == "parsererror")                   throw "parsererror";               if (s && s.dataFilter)                   data = s.dataFilter(data, type);               if (typeof data === "string") {                   if (type == "script")                       jQuery.globalEval(data);                   if (type == "json")                       data = window["eval"]("(" + data + ")");               }               return data;           }       });
0 0