2011-08-06 81 views
1

我直接用補間方法擴展jquery對象。 這是否適用於所有使用jquery的頁面或者僅在我做了擴展的頁面內。例如,說這是一個高低不平的頁面,我有一個如下所示的腳本。jquery擴展問題

sublevel_page.js

$(function(){ 
    /// some script to do with my sub level page 

    // my easing script 
     jQuery.extend(jQuery.easing,{ 
      easeInOutExpo: function (x, t, b, c, d) { 
       return (t==d) ? b+c : c * (-Math.pow(2, -10 * t/d) + 1) + b; 
      } 
    }) 

}) 

然後我就可以說我的主頁上還連有一個腳本調用home.js

$(function(){ 
    // my home page code 
    // would I need to add my extend easing code again here or is it part of the 
    // framework once the extend happens in my sublevel_page 
}); 

有一些灰色的jquery中仍然沒有完全獲取的區域,這是一個。在很多語言中,您在應用程序開始級別擴展框架,並立即應用於所有使用該框架的代碼。 如果我上面的假設是正確的,那麼使用jquery的其他頁面會如何知道,因爲它們在加載時會將jquery腳本添加到它們中。有人能爲我闡明這個問題嗎?

回答

0

當你擴展jquery並添加你自己的插件時,它會被添加到全局對象jQuery或$中。但是你必須確保你在其他文件中包含有這個擴展代碼的文件,在這些文件中你試圖使用它們。我希望這是有道理的。

+0

好吧,從你說的話來看,如果我想讓這個緩動適用於所有頁面,那麼它必須位於它自己的js文件中。 easing.js然後我需要將這個文件添加到每個頁面,然後才能使用它。 。所以它只會在頁面生命週期中被添加到jquery框架中。如果我轉到另一個沒有附加腳本的html頁面,那麼該頁面將無法使用緩動方法。所以它並沒有像以前那樣擴展jquery框架,而僅僅是在頁面生存期間。那是對的嗎 ? – Chapsterj

+0

是的,您必須在每個網頁中包含該文件。 Jquery是純JavaScript,其範圍是每頁請求。 – ShankarSangoli

0

如果你不想擴展jquery,你總是需要包含你的sublevel_page.js腳本,如果你不包含它,那麼它不能擴展。最好的方法是把你的方法放入jquery js文件中。所以你會永遠擁有它。