js 小结

在 jQuery 中,fn 其实就是 JavaScript 中 propotype 的一个别名,$ 是 jQuery 的别名,所以$.fn.pluginName 等同于 jQuery.prototype.pluginName$.fn.pluginName 表示创建一个 jQuery 的属性,通俗的说是写一个 jQuery 函数pluginName 才是函数名实例$.fn.setRedText = function() { return $(this).css("color", "red");};$("p").setRedText();





 <body>
<p class="testp">asdf</p>
 </body>
 <script>
 $(function(){
  jQuery.extend({
min: function(a, b) { return a < b ? a : b; },
max: function(a, b) { return a > b ? a : b; }
});
var settings={validate:false,limit:5,name:"foo"};
var options={validate:true,name:"bar"};
jQuery.extend(settings,options);
alert(settings.validate+"  "+settings.limit+"  "+settings.name);
//alert(jQuery.max(6,3));
$.fn.extend({
alertWhileClick:function(){
$(this).click(function(){
alert($(this).text);
})
}
})
 })
 $(function(){
 $(".testp").alertWhileClick();
 })
 
 </script>
</html>




这个是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



$.fn是指jquery的命名空间,加上fn上的方法及属性,会对jquery实例每一个有效。 
如扩展$.fn.abc() 
那么你可以这样子:$("#div").abc(); 
通常使用$.extend()方法扩展.


$.fn是什么东西呢。查看jQuery代码,就不难发现。

jQuery.fn = jQuery.prototype = {

   init: function( selector, context ) {//.... 

};

原来 jQuery.fn = jQuery.prototype.对prototype肯定不会陌生啦。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值