$.fn表示的是jQuery的原型对象,'.'想必你知道了是什么意思。
十余年的晋州网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。成都全网营销的优势是能够根据用户设备显示端的尺寸不同,自动调整晋州建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联从事“晋州网站设计”,“晋州网站推广”以来,每个客户项目都认真落实执行。
$.fn.searchbox.methods={}意思是向jQuery原型中的searchbox这个对象添加一个叫做
methods的属性,而这个属性本事其实是一个对象。而searchbox表示的是一个函数,在JS中一切皆对象,当然包括函数本身,那么就可以为函数添加属性或者方法。
var a=function()
{
alert(arguments.callee.k)//这个其实就是相当于alert(a.k)
}
a.k=1;
a()
$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。
如扩展$.fn.abc(),即$.fn.abc()是对jquery扩展了一个abc方法,那么后面你的每一个jquery实例都可以引用这个方法了.
那么你可以这样子:$("#div").abc();
$.fx是指jquery的特效。
如果使用显示、滑动、淡入淡出、动画等。
这个是jquery插件的形式,举个例子:
div id="myDiv"/div
(function($){
$.fn.extend({
test:function(){
alert($(this).attr('id'));
}
})
})(jQuery)
$('#myDiv').test();
打印出 : myDiv
(function($){
$.extend({
test:function(){
alert('111');
}
})
})(jQuery)
$.test();
打印出:111
前者是绑定在页面元素上的插件,后者是 绑定在jquery上的插件。
你好!
jQuery中通过extend()用来进行扩展,而又有jQuery.extend()和jQuery.fn.extend()两种用法。
jQuery.extend() 可以理解为jQuery类的扩展;
jQuery.fn.extend() 可以理解为jQuery实例的扩展,类似$("div")这种叫做实例,jQuery插件多基于这种方式扩展;
修改了下你的代码,如下:
!DOCTYPE HTML
html
head
meta http-equiv="Content-Type" content="text/html; charset=utf-8" /
script src="./jquery-1.11.1.min.js"/script
script
function test(){
console.log('init');
};
//给jQuery类扩展一个名为obj的对象,将test赋值给它
$.extend({
obj:test
});
//为$.obj也就是前面的对象继续进行扩展,相当于为它追加了一个okay方法
$.extend($.obj,{
'okay':function(){
console.log('okay');
}
});
$(function(){
$("button:eq(0)").click(function(){
$.obj();
});
$("button:eq(1)").click(function(){
$.obj.okay();
});
});
/script
/head
body
button测试test()/button
button测试okay()/button
/body
/html
只是对你的代码稍微做了调整,extend的使用都是基于jQuery对象的,不管是jQuery类或是jQuery实例。
希望对你有帮助!
这里的this指向的是Jquery对象,加上$()就行了!
或者发QQ邮件给我,我把整个demo给你!
这是不行的$.fn.myfunc=
只是个jquery对象增加了一个方法,所以你这思路是不对的。
你要想在窗口变化时候做某些事还是要分开些的
1 做什么事
2 绑定触发
//1 定义
$.fn.myfunc = function(){
var $this = $(this);
//DOTO
}
//2 绑定
$(function(){
$(window).on("resize", function(){
$(this).myfunc();
});
});