插件基础篇3:jquery 插件开发备注
2012-03-06 14:39
120 查看
以前针对DOM元素的插件(即$.fn.)存临时数据都加在当前元素上建个特殊的属性来存,(JQ内部直接也搞这样的)今天发现其实JQ自己早就有对这个临时数据的存储方法:
$("dom").data(“mydata”,"this is data");还有就是插件开发的时候我们经常要给插件添加方法,其实就用JS内部添加方法的方法即可
this.myfn=function(){}
下面给上一个显示部分文字的插件的源码:
(类似CSS的text-overflow,但本插件你需要提供显示几个字,用于精确控制显示数量)
复制代码[/u]代码如下:
/**
* demo:
* 1.$("#limittext").limittext();
* 2.$("#limittext").limittext({"limit":1});
* 3.$("#limittext").limittext({"limit":1,"fill":"(部分隐藏)","fillid":"aaa"});
* 4.$("#limittext").limittext({"limit":1,"fill":"(部分隐藏)","fillid":"aaa"}).limit(10); * 5.$("#limittext").limittext({"limit":1,"fill":"(部分隐藏)","fillid":"aaa"}).limit('all');
* @param {Object} opt
* @author Lonely * @link http://liushan.net */
jQuery.fn.extend({
limittext:function(opt){
opt=$.extend({
"limit":30,
"fill":"...",
"fillid":null
},opt);
var $this=$(this);
var body=$(this).data('body');
if(body==null){
body=$this.html();
$(this).data('body',body);
}
this.limit=function(limit){
if(body.length<=limit||limit=='all')
var showbody=body;
else{
if(opt.fillid==null)
var showbody=body.substring(0,limit)+opt.fill;
else
var showbody=body.substring(0,limit)+"<span id='"+opt.fillid+"'>"+opt.fill+"<span>";
}
$(this).html(showbody);
}
this.limit(opt.limit);
return this;
} });
$("dom").data(“mydata”,"this is data");还有就是插件开发的时候我们经常要给插件添加方法,其实就用JS内部添加方法的方法即可
this.myfn=function(){}
下面给上一个显示部分文字的插件的源码:
(类似CSS的text-overflow,但本插件你需要提供显示几个字,用于精确控制显示数量)
复制代码[/u]代码如下:
/**
* demo:
* 1.$("#limittext").limittext();
* 2.$("#limittext").limittext({"limit":1});
* 3.$("#limittext").limittext({"limit":1,"fill":"(部分隐藏)","fillid":"aaa"});
* 4.$("#limittext").limittext({"limit":1,"fill":"(部分隐藏)","fillid":"aaa"}).limit(10); * 5.$("#limittext").limittext({"limit":1,"fill":"(部分隐藏)","fillid":"aaa"}).limit('all');
* @param {Object} opt
* @author Lonely * @link http://liushan.net */
jQuery.fn.extend({
limittext:function(opt){
opt=$.extend({
"limit":30,
"fill":"...",
"fillid":null
},opt);
var $this=$(this);
var body=$(this).data('body');
if(body==null){
body=$this.html();
$(this).data('body',body);
}
this.limit=function(limit){
if(body.length<=limit||limit=='all')
var showbody=body;
else{
if(opt.fillid==null)
var showbody=body.substring(0,limit)+opt.fill;
else
var showbody=body.substring(0,limit)+"<span id='"+opt.fillid+"'>"+opt.fill+"<span>";
}
$(this).html(showbody);
}
this.limit(opt.limit);
return this;
} });
相关文章推荐
- jquery 插件开发备注
- 插件基础篇1:jquery插件开发方法(初学者)(转载)
- 插件基础篇2:扩展jQuery的功能 插件开发
- 插件基础篇5:跟我一起学写jQuery插件开发方法
- jquery 插件开发备注
- 插件基础篇6:jQuery 插件开发 其实很简单
- jquery 插件开发备注
- jQuery插件开发全解析
- jquery 自定义插件开发
- jquery(插件)开发相关资料
- eclipse中开发jquery插件安装
- jQuery插件开发汇总
- 随机字符变换效果的jQuery插件开发教程
- jquery插件的开发
- 跟我一起学JQuery插件开发
- java开发中常用插件二jcrop---jQuery 图像裁剪插件
- 老司机带你解读jQuery插件开发流程
- jquery插件开发学习笔记(七)——页面平滑滚动改进
- JQuery插件开发示例代码
- jQuery插件开发详细教程