jQuery为开发插件提拱了两个方法(https://www.cnblogs.com/ajianbeyourself/p/5815689.html)教你写jQuery插件
jQuery.extend(object); 即$.extend(object); jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法。 $.extend()来扩展jQuery
jQuery.fn.extend(object); 即$.fn.extend(object); jQuery.fn.extend(object);给jQuery对象添加方法。$.fn 向jQuery添加新的方法
第一种方式简单,仅仅是在jQuery命名空间或者理解成jQuery身上添加了一个静态方法而以。所以我们调用通过$.extend()添加的函数时直接通过$符号调用($.myfunction())而不需要选中DOM元素($('#example').myfunction())。请看下面的例子。
$.extend({
sayHello: function(name) {
console.log('Hello,' + (name ? name : 'Dude') + '!');
}
})
$.sayHello(); //调用
$.sayHello('Wayou'); //带参调用
//项目中扩展插件实例
$.fn.extend({
wrapForm: function () {
var currentObj = $(this);
if (currentObj.is("form")) {//this是表单id或class
return currentObj;
} else {//针对表单没有被包裹form标签,此时this是包裹的div的id或class
return currentObj.parent().is("form") ? currentObj.parent() : currentObj.wrap("<form></form>").parent();
}
},
serializeForm: function () {//序列化表单成json对象
return $(this).wrapForm().serializeJSON();
},
})
在jsp页面中调用,
/* 打开窗口 */
function openDialog(options) {
var defaultOptions = {
title: "",
url: "",
callBack: function () {
}
};
options = $.extend(defaultOptions, options);
layer.open({
title: options.title,
fixed: false,
type: 2,
content: options.url,
area: ['800px', '600px'],
end: options.callBack
});
}
这里要说的,在插件中的方法命名sayHello: function(name) ,调用该方法需要$.方法名
js中的函数声明方式:
(1)function 函数名(参数1,参数2,...){
//要执行的语句
}
(2)
var 函数名 = function(参数1,参数2,...){
//要执行的语句
};
(3)
var 变量名 = new Function("参数1","参数2",...,"参数n","函数体");
普通方法在jsp中的调用
<li><a onclick="方法名();" style="cursor:pointer;"><i class="icon-user"></i>
$(function(){}):$(document).ready(function(){})可以简写成$(function(){});
jQuery.extend(object); 即$.extend(object); jQuery.extend(object);为扩展jQuery类本身.为类添加新的方法。 $.extend()来扩展jQuery
jQuery.fn.extend(object); 即$.fn.extend(object); jQuery.fn.extend(object);给jQuery对象添加方法。$.fn 向jQuery添加新的方法
第一种方式简单,仅仅是在jQuery命名空间或者理解成jQuery身上添加了一个静态方法而以。所以我们调用通过$.extend()添加的函数时直接通过$符号调用($.myfunction())而不需要选中DOM元素($('#example').myfunction())。请看下面的例子。
$.extend({
sayHello: function(name) {
console.log('Hello,' + (name ? name : 'Dude') + '!');
}
})
$.sayHello(); //调用
$.sayHello('Wayou'); //带参调用
//项目中扩展插件实例
$.fn.extend({
wrapForm: function () {
var currentObj = $(this);
if (currentObj.is("form")) {//this是表单id或class
return currentObj;
} else {//针对表单没有被包裹form标签,此时this是包裹的div的id或class
return currentObj.parent().is("form") ? currentObj.parent() : currentObj.wrap("<form></form>").parent();
}
},
serializeForm: function () {//序列化表单成json对象
return $(this).wrapForm().serializeJSON();
},
})
在jsp页面中调用,
/* 打开窗口 */
function openDialog(options) {
var defaultOptions = {
title: "",
url: "",
callBack: function () {
}
};
options = $.extend(defaultOptions, options);
layer.open({
title: options.title,
fixed: false,
type: 2,
content: options.url,
area: ['800px', '600px'],
end: options.callBack
});
}
这里要说的,在插件中的方法命名sayHello: function(name) ,调用该方法需要$.方法名
js中的函数声明方式:
(1)function 函数名(参数1,参数2,...){
//要执行的语句
}
(2)
var 函数名 = function(参数1,参数2,...){
//要执行的语句
};
(3)
var 变量名 = new Function("参数1","参数2",...,"参数n","函数体");
普通方法在jsp中的调用
<li><a onclick="方法名();" style="cursor:pointer;"><i class="icon-user"></i>
$(function(){}):$(document).ready(function(){})可以简写成$(function(){});