2011-10-04 39 views
1

以下代碼存在問題。JQuery + Prototype.js潛在衝突

<script type="text/javascript" src="<javascript/prototype.js"></script> 
<script type="text/javascript"> 

// <![CDATA[ 
$(document).ready(function() { 

// Start Tabbing <--------------------- 
// Hide features tab 
$('#detailFeatures').hide(); 

$('#menu a').click(function(){ 

    if ($(this).attr('rel') == 'pdf') return true; 

    selected = $(this).attr('href'); 

    // Clear active tab 
    $('#menu li').removeClass('active'); 

    // Add class to clicked 
    tab = selected + 'Tab'; 
    $(tab).addClass('active'); 

    // Hide all content 
    $('.productTab').css('display','none'); 

    // Show selected tab 
    $(selected).css('display','block'); 

    return false; 

    }); 
// End Tabbing <------------------ 

上面的代碼被用來創建一個標籤面板,其允許看到任一產品概述或產品特徵列表

在控制檯即時得到錯誤「未捕獲的類型錯誤:對象#沒有方法'準備'「

我使用標準的prototype.js作爲lightbox和jquery.js的Tab鍵,不變。

在此先感謝。

+1

爲什麼在一個頁面上使用兩個框架:\ – Raynos

+0

嗯,我對JS並不過分自信,頁面已經有一個Tab鍵方法,我只是被要求實現一個圖片庫(lightbox-esque)。有沒有一個jQuery的燈箱版本,或非常相似? – Aleski

+0

這不僅是JavaScript你不好:http://tinyurl.com/6x8x3g6 –

回答

3

包裹在一個匿名函數代碼:

(function($){ 
    //JQuery code here, example: 
    $(document).ready(...); 
})(jQuery); 

這段代碼「轉換」 $「回」到一個jQuery對象,從而使此包裝內的代碼可以放心地使用上$ jQuery方法。

+0

包裝在功能的整個事情,它似乎並沒有幫助。 – Aleski

+0

因爲您已經將'$ .noConflict()'添加到您的代碼中了。請去掉它。 –

+0

感謝兄弟,工作過的魅力。 – Aleski