2010-10-17 71 views
1

我已經創建了兩個插件(A和B),其中插件B依賴於插件A.
在插件A中,我使用jQuery UI對話框進行用戶交互,並且工作正常。jQuery對話框拋出錯誤

Dependency: Plugin A is a filebrowser. Clicking a button opens a dialog window where user can select file to relate to wordpress post. Plugin A loads all JS necessary to use the dialog box.

現在,我嘗試在插件B使用對話框,我得到一個錯誤:

(this.uiDialogTitlebarCloseText = c("<span/>")).addClass("ui-icon ui-icon-closethick").text(m.closeText).appendTo is not a function 

插件的使用b


我用非常簡單的代碼測試:

// Javascript code from custom_plugin.js 
jQuery(document).ready(function() { 
    jQuery('#dialog').dialog(); 
}); 

// Code from my custom_plugin.php 
<div class="icon32" id="icon-tools"><br></div> 
<h2>Gallery manager</h2> 

<div id="poststuff" class="metabox-holder"> 
    <div id="post-body"> 
    <div id="post-body-content"> 
     <div id="dialog" title="File browser"> This is a dialog.</div>        
    </div> 
    </div>  
</div> 

我不知道爲什麼我得到這個錯誤。有關如何解決此問題的任何建議?

插件中


這是codeI在插件A.使用,我發現了上面的錯誤而沒有用插件答。腳本插件中只是正常加載交互。

jQuery("#fileBrowser").dialog({ 
     title: "File browser", 
     modal: true, 
     autoOpen: false, 
     height: 700, 
     width: 800, 
     open: function() { 
      jQuery("#fileBrowser").load("../wp-content/plugins/wp-filebrowser/fileBrowser.php", function() { 

      // Clear input/feedback text when entering new folder name 
      jQuery('#newDirDialog input[type=text]').focus(function() { 
       jQuery(this).val(''); 
       jQuery('.newDirFedback').fadeOut(function(){ jQuery(this).empty(); }); 
      }); 

      // Initialize create new dir dialog window 
       jQuery("#newDirDialog").dialog({ 
       autoOpen: false, modal: true, title: "New dir" 
       }); 
      }); 
     } 
     } 
); 

    //Open dialog box on click from WP admin   
    jQuery('.addImage').click(function() { 
    imageUrlInputBox = jQuery(this).siblings(":text"); 
    imagePreviewLink = jQuery(this).siblings("a"); 
    jQuery("#fileBrowser").dialog("open"); 
    }); 
+0

它看起來像你有一些不正確的Javascript。您可以在引發錯誤的依賴插件中發佈該行嗎? – tpow 2010-10-17 15:21:56

+0

更好的是,你能給鏈接到有問題的代碼嗎? – lonesomeday 2010-10-17 15:22:35

+0

@cinqo - 該行在上面。如果我刪除'jQuery('#dialog')。dialog(); ',當頁面加載時我不會收到錯誤。 – Steven 2010-10-17 17:13:41

回答

1

我敢打賭,問題是,m.closeTextundefined。如果是這種情況,.text()函數可能會認爲您希望它返回jQuery對象的文本內容,而不是設置它。

編輯 —這仍然是我的猜測,爲什麼jQuery用戶界面對話框裏面的代碼是barfing,但這種情況會來了解如何是一個完整的神祕給我。

+0

但這是位於'jQuery.dialog'腳本內的代碼。我添加了我在插件A中使用的jQuery代碼,並希望它能起到幫助作用。 – Steven 2010-10-17 17:24:20

+0

你在插件B中設置語言上下文嗎?也許是從該插件發佈代碼,因爲這是錯誤的來源。 – Pointy 2010-10-17 17:35:53

+0

我已經添加了插件B的所有代碼。 – Steven 2010-10-17 17:57:18