fancybox 2和tinymce jquery冲突
问题描述:
我在网站上的许多地方使用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有冲突,或者可以在上面的代码中看到冲突?
在此先感谢任何可以帮助的人。
答
许多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变量的存在和在这种情况下可能无法正确运行。
AK嗨, 感谢您的快速反应。我怀疑这可能是这种情况。但是,由于Fancybox实际上正确启动弹出窗口,我认为这不是一个直接的jQuery冲突。如果围绕使用$而发生冲突,我会认为fancybox根本不会开火,因此弹出窗口不会显示。这是一个公平的假设吗?我对jQuery相当陌生,所以我可能完全错误。 – SpikeWeb 2012-07-23 05:47:48