2012-07-23 131 views
2

我在网站上的许多地方使用fancybox-2.0.1并且一直这样做没有问题。我也一直使用tinymce的jQuery实现与fancybox结合使用,没有任何问题。一旦fancybox 2和tinymce jquery冲突

<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将不再打开网址:但是,因为我改变了TinyMCE的英迪脚本看起来像下面我开始的问题。相反,它会启动正确大小的弹出窗口,但内容将为“请求的内容无法加载,请稍后再试。”

是否有人知道与新的fancybox和tinymce有冲突,或者可以在上面的代码中看到冲突?

在此先感谢任何可以帮助的人。

回答

3

许多JavaScript库使用$作为函数或变量名称,就像jQuery一样。在jQuery的情况下,$是jQuery的别名,所以所有功能都可以在不使用$的情况下使用。如果我们需要使用另一个JavaScript库jQuery的旁边,我们可以返回$控制权交还给其他库到$ .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> 

这种技术是与结合。就绪特别有效()方法的)别名jQuery对象,作为回调中传递。就绪(我们可以使用$如果我们希望不用担心冲突后能力:

<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> 

如果需要,我们可以腾出jQuery的名称以及通过将真实的参数传递给方法。这很少需要,如果我们必须这样做(例如,如果我们需要在同一页面上使用多个版本的jQuery库),我们需要考虑大多数插件依赖于jQuery变量的存在和在这种情况下可能无法正确运行。

Reference URL

+0

AK嗨, 感谢您的快速反应。我怀疑这可能是这种情况。但是,由于Fancybox实际上正确启动弹出窗口,我认为这不是一个直接的jQuery冲突。如果围绕使用$而发生冲突,我会认为fancybox根本不会开火,因此弹出窗口不会显示。这是一个公平的假设吗?我对jQuery相当陌生,所以我可能完全错误。 – SpikeWeb 2012-07-23 05:47:48