2011-11-09 43 views
0

我有一個html頁面,它添加了對jQuery庫的引用。然後我有對話窗口再次加載jquery庫。'找不到'功能錯誤

在這一點上,我有一個jquery插件#1調用另一個jquery插件#2,我得到像jquery pluging 2錯誤無法找到。

如果我刪除對第一個jquery庫的引用似乎工作。爲什麼要添加第二個引用jquery(用於對話框)導致此問題?我該如何解決?

我的插件(在外部文件中定義等)

(function ($) { 

    $.fn.finder = function (optionsIn) { 
       //do stuff 
       .. 
       //2nd call to plugin this is where i get the error 
       $(this).watermark('watermark'); 

    }; 
})(jQuery); 

插件工作正常,一個簡單的HTML頁面。但是,如果我使用的插件就可以擁有了jQuery庫中的多個引用問題的對話。

想法?

我使用的水印插件https://github.com/fabrikagency/fa-watermark與典型的用法一樣$('input').watermark('Enter your name.','my-custom-class');

+0

顯示'水印'定義。另外,在$ .fn.func_name函數中,this是一個jQuery對象。所以,不要將它包裝在另一個jQuery對象中。 –

+0

是的,使用$(this)似乎沒有在對話框中使用插件(記住與對話框實現,主要引用jquery庫和對話框也引用它)..它工作正常,如果我刪除其中一個引用jquery 爲什麼會這樣? – David

+1

在包含您自己的包含'finder'的外部腳本文件之前,您必須包含水印插件。 –

回答

0

感謝您的輸入。這讓我非常仔細地看待裝載物品的順序。看來問題是我的插件在jquery之前被加載。這也回答了爲什麼如果我把$('inputelement')。pluginOne('')放在$(document).ready(function(){ })中;那麼它工作正常。這工作,因爲它沒有嘗試附加插件,直到一切都被加載。