1.jqԴ?源码? extend
2.Web语言jq中,extend实现插件拓展的源码原理是什么?这个插件是加到了哪里?
3.å¦ä½å并jquery对象
4.jQuery EasyUI 为Combo,Combobox添加清除值功能实例
jqԴ?? extend
JQ说白了就是由大神用JS写出好多个实用的方法,并打包成一个类,源码就是源码JQ了,区别能明白了吧,源码爱旅行app源码他比JS使用简单,源码cms建站系统源码写的源码时候一般只需用$.就是JQ了。比如JS 你写点击事件,源码是源码document.getElementbyID('#aaa').onclick(); JQ只需$('#aaa').click();就可以了。你可以先去看看JQ的源码开发文档,简单了解一下。源码
Web语言jq中,源码extend实现插件拓展的源码乖离率源码原理是什么?这个插件是加到了哪里?
对象上挂载一个extend方法,用于让开发者为我这个对象添加功能和方法。源码
1 var $ = {
2 extend:function(ob){
3 /**暂时不管里面写什么**/
4 }
5 }
现在,源码我们就在$这个对象上添加了一个extend方法,外部可以通过$.extend(obj)的地区分站源码方法去调用它。
假设现在我们要往$上面添加一个方法,也就是添加一个插件,我们只需要:
1 $.extend({
2 myFunction:function(obj){
3 //do something....
4 }
5 })
现在只需要$.myFunction(obj);就可以实现方法内所要做的事了。
问题的安卓源码查看关键来了,我们明明是把方法挂载在$.extend上,为什么可以直接用$去调用?这里就要看看extend内部是怎么处理传入的obj了。
1 var $ = {
2 extend:function(obj){
3 for(var key in obj){
4 this.__proto__[key]=obj[key];
5 }
6 }
7 }
å¦ä½å并jquery对象
var settings = { validate: false, limit: 5, name: "foo" };
var options = { validate: true, name: "bar" };
jQuery.extend(settings, options);
//ç»æ:
settings == { validate: true, limit: 5, name: "bar" }
jQuery EasyUI 为Combo,Combobox添加清除值功能实例
效果图:
图标
(function($){
//初始化清除按钮
function initClear(target){
var jq = $(target);
var opts = jq.data('combo').options;
var combo = jq.data('combo').combo;
var arrow = combo.find('span.combo-arrow');
var clear = arrow.siblings("span.combo-clear");
if(clear.size()==0){
//创建清除按钮。
clear = $('');
//清除按钮添加悬停效果。
clear.unbind("mouseenter.combo mouseleave.combo").bind("mouseenter.combo mouseleave.combo",
function(event){
var isEnter = event.type=="mouseenter";
clear[isEnter ? 'addClass' : 'removeClass']("combo-clear-hover");
}
);
//清除按钮添加点击事件,清除当前选中值及隐藏选择面板。
clear.unbind("click.combo").bind("click.combo",function(){
jq.combo("setValue","").combo("setText","");
jq.combo('hidePanel');
});
arrow.before(clear);
};
var input = combo.find("input.combo-text");
input.outerWidth(input.outerWidth()-clear.outerWidth());
opts.initClear = true;//已进行清除按钮初始化。
}
//扩展easyui combo添加清除当前值。
var oldResize = $.fn.combo.methods.resize;
$.extend($.fn.combo.methods,{
initClear:function(jq){
return jq.each(function(){
initClear(this);
});
},
resize:function(jq){
//调用默认combo resize方法。
var returnValue = oldResize.apply(this,arguments);
var opts = jq.data("combo").options;
if(opts.initClear){
jq.combo("initClear",jq);
}
return returnValue;
}
});
}(jQuery));
html代码
成都 传智播客 姚欣 小星星
js代码
$('#myselect').combobox({
required : true,
editable : false
}).combobox("initClear");
css样式
.combo-clear {
background-color: #E0ECFF;
width: px;
height: px;
overflow: hidden;
display: inline-block;
vertical-align: top;
cursor: pointer;
opacity: 0.6;
filter: alpha(opacity=);
background: url('images/combo_clear.png') no-repeat center center;
}
.combo-clear-hover {
opacity: 1.0;
filter: alpha(opacity=);
background-color: #eaf2ff;
}