我创建了两个插件(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");
});
答案 0 :(得分:1)
我打赌问题是m.closeText
是undefined
。如果是这种情况,.text()
函数可能会认为您希望它返回jQuery对象的文本内容,而不是设置它。
编辑 - 这仍然是我猜测为什么jQuery UI对话框中的代码是barfing,但是这种情况对我来说是一个完全的谜。