代码之家  ›  专栏  ›  技术社区  ›  Steven

jquery对话框引发错误

  •  1
  • Steven  · 技术社区  · 14 年前

    我创建了两个插件(A和B),其中插件B依赖于插件A。
    在插件A中,我使用jquery ui对话框进行用户交互,这很好。

    附属国: 插件A是一个文件浏览器。 单击按钮将打开一个对话框 用户可以选择文件的窗口 与WordPress Post相关。插件A 加载使用 对话框。

    现在我尝试使用插件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 回复  |  直到 11 年前
        1
  •  1
  •   Pointy    14 年前

    我敢打赌问题是 m.closeText undefined . 如果是这样的话, .text() 函数可能会认为您希望它返回jquery对象的文本内容,而不是设置它。

    编辑 -对于jquery ui对话框中的代码为什么会出错,我仍然是这样猜测的,但是这种情况如何发生对我来说是一个完全的谜。