jQuery对话框抛出错误

时间:2010-10-17 14:41:56

标签: jquery jquery-ui

我创建了两个插件(A和B),其中插件B依赖于插件A. 在插件A中,我使用jQuery UI Dialog进行用户交互,这很好用。

  

依赖关系:插件A是文件浏览器。   单击按钮可打开一个对话框   用户可以选择文件的窗口   与wordpress帖子有关。插件A   加载所有必需的JS来使用   对话框。

现在我尝试在插件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>

我不知道为什么我会收到此错误。关于我如何解决这个问题的任何建议?

插件A


这是我在插件A中使用的代码。我在没有与插件A交互时遇到上述错误。插件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");
  });

1 个答案:

答案 0 :(得分:1)

我打赌问题是m.closeTextundefined。如果是这种情况,.text()函数可能会认为您希望它返回jQuery对象的文本内容,而不是设置它。

编辑 - 这仍然是我猜测为什么jQuery UI对话框中的代码是barfing,但是这种情况对我来说是一个完全的谜。

相关问题