2012-07-23 133 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