找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

帖子
查看: 2472|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

JQuery中.fn、.fn.extend、.extend心得

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:83710 發(fā)表于 2015-6-25 16:54 | 只看該作者 回帖獎(jiǎng)勵(lì) |正序?yàn)g覽 |閱讀模式
    Web開(kāi)發(fā)肯定要使用第三方插件,對(duì)于一個(gè)炫麗的效果都忍不住想看看對(duì)方是如何實(shí)現(xiàn)的,剛下載了一個(gè)仿京東商品鼠標(biāo)經(jīng)過(guò)時(shí)局部放大的插件�?戳藘裳�JQuery源碼,看看就感覺(jué)一頭霧水。JQuery本來(lái)自己學(xué)的就半吊子,再加智商又不驚人。。。當(dāng)開(kāi)發(fā)插件的時(shí)候難免會(huì)使用$.fn$.extend。原來(lái)看到這個(gè)時(shí)候非常抵觸,今天再次看到的時(shí)候簡(jiǎn)單的查了查外加一個(gè)Demo實(shí)驗(yàn)了一下。以下為幾分鐘補(bǔ)腦后的小記,如有錯(cuò)誤請(qǐng)大神急時(shí)指出以免誤導(dǎo)他人。

     進(jìn)入正題:
        
        1、$.fn.UserDefinitionName】(PSUserDefinitionName為自定義的方法名稱)
            $.fn是指JQuery的命名空間,加上fn上的方法及屬性,會(huì)對(duì)JQuery實(shí)例每一個(gè)都有效。例如:
        <
script type="text/javascript">
             $.fn.sayhello =
function () {alert('提示:$.fn.sayhello'); };
                 $(document).ready(
function () {
                 $(
"#btn").sayhello();     // btnButtonId
            });

        </
script>

        
注:我對(duì)$.fn的理解是相當(dāng)于給一個(gè)Object對(duì)象添加了一個(gè)擴(kuò)展方法(PS:個(gè)人觀點(diǎn))

        2
$.extend
        其實(shí)他和
$.fn是非常相似的,詳細(xì)做Web的人大部分都用過(guò)$.ajax$.get等方法,而這個(gè)$.extend就是用來(lái)添加自定義靜態(tài)方法的。例如:
   
    <
script type="text/javascript">
        $.fn.sayhello=
function () { alert('提示:$.fn.sayhello');};
        $.extend({

            sayChinese:
function () { alert('提示:世界、你好!');},
            sayEnglish:
function () { alert('MessageHello World !');}
        });

        $(document).ready(
function () {
            $(
"#btn").sayhello();
            $.sayChinese();

            $.sayEnglish();

        });

    </
script>
   
    3、$.fn.extend
        如果你要問(wèn)我這個(gè)與
$.fn.UserDefinitionName】有什么區(qū)別,那我只能說(shuō)“我母雞耶。。。”!我測(cè)試了一下他與$.fn.UserDefinitionName】都能實(shí)現(xiàn)Object對(duì)象的擴(kuò)展方法。原因我不清楚。不過(guò)還是貼出這個(gè)的代碼吧
    <
script type="text/javascript">
        $.fn.sayhello =
function () {alert('提示:$.fn.sayhello'); };
        $.extend({

            sayChinese:
function () { alert('提示:世界、你好!');},
            sayEnglish:
function () { alert('MessageHello World !');}
        });

        $.fn.extend({

            objectMethod:
function () { alert('提示:$.fn.extend'); }
        });

        $(document).ready(
function () {
            $(
"#btn").sayhello();
            $.sayChinese();

            $.sayEnglish();

            $(
"#btn").objectMethod();
        });

    </
script>

     
4、$.UserDefintionName
        這個(gè)與
$.extend如出一轍,如果硬要讓我說(shuō)他倆不同點(diǎn)那只能說(shuō)寫(xiě)法不通了
         
<script type="text/javascript">
            $.fn.sayhello =
function () {alert('提示:$.fn.sayhello'); };
            $.extend({

                sayChinese:
function () { alert('提示:世界、你好!');},
                sayEnglish:
function () { alert('MessageHello World !');}
            });

        
        $.fn.extend({

            objectMethod:
function () { alert('提示:$.fn.extend'); }
        });

        $.CodeMonkey =
function () {alert('CodeMonkey是神!');};
        $(document).ready(
function () {
        $(
"#btn").sayhello();
            $.sayChinese();

            $.sayEnglish();

            $(
"#btn").objectMethod();
            $.CodeMonkey();

        });

    </
script>


PS:下載地址中只貼出HTML文件,JQuery腳本自己下載吧。把上面的JS引用替換成你的JQuery文件路徑即可!


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表