fancybox 2和tinymce jquery冲突

时间:2012-07-23 05:24:46

标签: jquery tinymce fancybox

我在网站的许多区域使用fancybox-2.0.1并且一直这样做没有问题。我也一直使用tinquce的jquery实现和fancybox没有问题。但是,由于我将tinymce inti脚本更改为如下所示,我开始遇到问题:

<script type="text/javascript" src="tinymceJQ/jscripts/tiny_mce/jquery.tinymce.js"></script>
<script type="text/javascript">
$(function() {

var $editor = $("#appContentTextArea");

// Initialize WYSIWYG
$editor.tinymce({
    script_url : 'tinymceJQ/jscripts/tiny_mce/tiny_mce.js',
    theme : "advanced",
    mode : modeAlter,
    /*editor_selector : "mceEditor",*/
    content_css : "css/webPage.css",
    paste_text_sticky: true,
    paste_text_sticky_default: true,
    relative_urls: false,
    remove_script_host : false,
    remember_last_path : false,
    imagemanager_rootpath: accountFolder,
    theme_advanced_buttons1 : "bold, italic, underline, strikethrough, separator, justifyleft, justifycenter, justifyright, justifyfull, separator, formatselect, forecolor, separator, hr, removeformat, separator, cut, copy, image, separator, aquaHeading, sponsorDiv",
    theme_advanced_buttons2: "code, separator, link, unlinkbullist,numlist,tablecontrols, fontselect",
    theme_advanced_buttons3: "",
    setup : function(ed) {
        ed.onInit.add(function() {
            // do something
        });
    },
    oninit : tinyMceReady
});
</script>

一旦我更改为此初始化,Fancybox将不再打开该URL。相反,它会启动正确大小的弹出窗口,但内容将是“无法加载请求的内容。请稍后再试。”

是否有人意识到与新的fancybox和tinymce存在冲突,或者上述代码中是否存在冲突?

提前感谢任何可以提供帮助的人。

1 个答案:

答案 0 :(得分:3)

许多JavaScript库使用$作为函数或变量名,就像jQuery一样。在jQuery的情况下,$只是jQuery的别名,因此所有功能都可以在不使用$的情况下使用。如果我们需要在jQuery旁边使用另一个JavaScript库,我们可以通过调用$ .noConflict()将$的控制权返回给另一个库:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // Code that uses other library's $ can follow here.
</script>

这种技术与.ready()方法对jQuery对象进行别名的能力特别有效,因为在传递给.ready()的回调中,如果我们愿意,我们可以使用$而不用担心以后的冲突:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  jQuery(document).ready(function($) {
    // Code that uses jQuery's $ can follow here.
  });
  // Code that uses other library's $ can follow here.
</script>

如果有必要,我们可以通过将true作为参数传递给方法来释放jQuery名称。这很少是必要的,如果我们必须这样做(例如,如果我们需要在同一页面上使用多个版本的jQuery库),我们需要考虑大多数插件都依赖于jQuery变量的存在和在这种情况下可能无法正常运作。

Reference URL