日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

jQuery回调函数

發(fā)布時間:2025/5/22 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 jQuery回调函数 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

1.引言

今天在學習《jQuery基礎教程》在學習編寫插件的時候,書中說利用回調函數(shù)來當參數(shù),會極大的提高程序的靈活性。對回調函數(shù)很陌生。研究了一下給的示例程序。感覺對回調函數(shù)有了基本的了解。記錄下來,以備后用。

2.定義

回調函數(shù)就是一個通過函數(shù)指針調用的函數(shù)。如果你把函數(shù)的指針(地址)作為參數(shù)傳遞給另一個函數(shù),當這個指針被用來調用其所指向的函數(shù)時,我們就說這是回調函數(shù)。回調函數(shù)不是由該函數(shù)的實現(xiàn)方直接調用,而是在特定的事件或條件發(fā)生時由另外的一方調用的,才會真正的執(zhí)行回調函數(shù)內部的方法。

3.代碼

JS代碼

1 (function($){ 2 $.fn.shadow = function(opts){ 3 //定義的默認的參數(shù) 4 var defaults = { 5 copies: 5, 6 opacity:0.1, 7 //回調函數(shù) 8 copyOffset:function(index){ 9 return{x:index,y:index}; 10 } 11 }; 12 //將opts的內容合并到default中。 13 var options = $.extend(defaults,opts); 14 return this.each(function(){ 15 var $originalElement = $(this); 16 //設置參數(shù)對象 17 for(var i=0;i<options.copies;i++) 18 { 19 var offset = options.copyOffset(i); 20 $originalElement 21 .clone() 22 .css({ 23 position:'absolute', 24 left:$originalElement.offset().left + offset.x, 25 top:$originalElement.offset().top + offset.y, 26 margin:0, 27 zIndex:-1, 28 //設置參數(shù)對象 29 opacity:options.opacity 30 }) 31 .appendTo('body'); 32 } 33 }); 34 }; 35 })(jQuery); 36 $(document).ready(function(){ 37 $('h1').shadow({ 38 copies:5, 39 copyOffset:function(index){ 40 return {x:-index,y:-2 * index}; 41 } 42 }); 43 });

4.分析

通過這段代碼調試的時候進入的順序,便可理解回調函數(shù)的機制。通過對黃背景的四段代碼加入斷點。程序將會以以下的順序運行

39:先跑第39行,當DOM加載完畢后運行了shadow(),跑完39行并不會直接跑40行。而是直接調到了shadow()函數(shù)定義的地方。在這里只是聲明了copyOffset的函數(shù)指針。

2:這時候查看opts里面的內容Object { copies=5, copyOffset=function()}從這里可以看出來copyOffset只是一個function(),

8:開始走默認參數(shù)的copyOffset,與39行一樣,不會直接進入回調函數(shù)里面的內容。

19:走到這里時,需要將對CopyOffset發(fā)出請求并傳入了i作為參數(shù)。這時候i就是回調函數(shù)的參數(shù)index。

40:由于13行的”var options = $.Extend(defauflts,opts)”。opts的屬性會覆蓋掉default的屬性,所以不會走9行默認的參數(shù)中的回調函數(shù)的執(zhí)行方法,而是走了第40行的回調函數(shù)的方法。

5.總結

從上面的分析可以看出,回調函數(shù)在參數(shù)中聲明時,相當于只是聲明了一個委托。等到用到這個參數(shù)的時候才會真正的執(zhí)行回調函數(shù)里面的內容。

6.附html代碼

1 <!DOCTYPE html> 2 3 <html lang="en"> 4 <head> 5 <meta charset="utf-8"> 6 <title>Developing Plugins</title> 7 8 <link rel="stylesheet" href="08.css" type="text/css" /> 9 <link rel="stylesheet" href="ui-themes/smoothness/jquery-ui-1.10.0.custom.css" type="text/css" /> 10 11 <script src="jquery.js"></script> 12 <script src="jquery-ui-1.10.0.custom.min.js"></script> 13 <script src="08.js"></script> 14 </head> 15 <body> 16 <div id="container"> 17 <h1>Inventory</h1> 18 <table id="inventory"> 19 <thead> 20 <tr class="two"> 21 <th>Product</th> 22 <th>Quantity</th> 23 <th>Price</th> 24 </tr> 25 </thead> 26 <tfoot> 27 <tr class="two" id="sum"> 28 <td>Total</td> 29 <td></td> 30 <td></td> 31 </tr> 32 <tr id="average"> 33 <td>Average</td> 34 <td></td> 35 <td></td> 36 </tr> 37 </tfoot> 38 <tbody> 39 <tr> 40 <td><a href="spam.html" data-tooltip-text="Nutritious and delicious!">Spam</a></td> 41 <td>4</td> 42 <td>2.50</td> 43 </tr> 44 <tr> 45 <td><a href="egg.html" data-tooltip-text="Farm fresh or scrambled!">Egg</a></td> 46 <td>12</td> 47 <td>4.32</td> 48 </tr> 49 <tr> 50 <td><a href="gourmet-spam.html" data-tooltip-text="Chef Hermann's recipe.">Gourmet Spam</a></td> 51 <td>14</td> 52 <td>7.89</td> 53 </tr> 54 </tbody> 55 </table> 56 </div> 57 </body> 58 </html> Html代碼

?

轉載于:https://www.cnblogs.com/MaFeng0213/p/5769785.html

總結

以上是生活随笔為你收集整理的jQuery回调函数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。