<!DOCTYPE html>
<html
lang="en">
<head>
<meta
charset="UTF-8">
<meta
name="viewport"
content="width=device-width, initial-scale=1.0">
<meta
http-equiv="X-UA-Compatible"
content="ie=edge">
<title>Document</title>
<script
src="jquery-1.11.1.min.js"></script>
</head>
<body>
<ul
id="_ul">
<li>aaa</li>
<li>ccc</li>
<li>bbb</li>
</ul>
<div
id="test"></div>
<script>
// (function($){
// $.fn.AlertSelf = function(){
// this.click(function(){alert($(this).html())});
// }
// })(jQuery)
// $('#_ul li').AlertSelf();
// var result = $.extend({},{name:'tom',age:21},{name:'jerry',sex:'boy'})
// console.log(result);
// $.extend({
// hello:function(){alert('hello');}
// })
// $.hello()
/* $.entend 是将方法合并到jquery的全局对象中, $.fn.extend 是将方法合并到jquery的实例对象中去 */
// $.fn.extend({
// hello:function(){alert('hello');}
// })
// $.extend({net:{}});
// $.extend($.net,{
// hellp:function(){alert('hello');}
// })
/* 1.定义一个全局函数*/
jQuery.foo =
function(){
alert("全局");
}
jQuery.bar =
function(){
alert("在一个全局");
}
/* 2.使用 extend 定义全局函数*/
jQuery.extend({
foo1:function(){alert("extend全局1");},
bar1:function(){alert("extend全局2");}
});
/* 3. 使用命名空间定义函数*/
jQuery.plugin = {
foo2:function(){
alert("使用namespace定义函数");
}
}
/*$(function(){
$.foo();
$.bar();
$.foo1();
$.bar1();
$.plugin.foo2();
})*/
/* 二、对象级别的插件开发*/
/* 形式一*/
(function($){
$.fn.extend({
foo3:function(){alert('队形级别extend1');},
bar3:function(){alert('对象那个级别extend2');}
})
})(jQuery);
/*形式二*/
(function($){
$.fn.foo4 =
function(){
alert('队形级别fn方法');
}
})(jQuery);
/* 接受参数来控制插件的行为*/
(function($){
$.fn.bar4 =
function(options){
var defaults = {aaa:'1',bbb:'2'};
var opts =
$.extend(defaults,options);
alert('参数值:aaa:'+opts.aaa+';bbb:'+opts.bbb);
}
})(jQuery);
/* 提供公有方法访问插件的配置项值*/
(function($){
$.fn.foo5 =
function(options){
var opts =
$.extend({},$.fn.foo5.defaults,options);
alert('参数值:aaa:'+opts.aaa+';bbb:'+opts.bbb);
}
$.fn.foo5.defaults = {aaa:'1',bbb:'2'};
})(jQuery);
/* 提供公有方法来访访问插件中其他的方法 */
(function($){
$.fn.bar5 =
function(options){
$.fn.bar5.alert(options);
}
$.fn.bar5.alert =
function(params){
alert(params);
}
})(jQuery);
$(function(){
$('#test').foo3();
$('#test').bar3();
$('#test').foo4();
$('#test').bar4();
$('#test').bar4({aaa:'3'});
$('#test').bar4({aaa:'3',bbb:'4'});
$('#test').foo5();
$('#test').foo5({aaa:'5',bbb:'6'});
$('#test').bar5('aaaa');
})
</script>
</body>
</html>