2011-09-06 137 views
1

我使用它使用jquery的一個Joomla模塊,被稱爲有機標籤,Jquery的對象不支持此屬性或方法」 IE

其中該模塊被呈現在同一頁上,存在一種用於圖像的滑塊我認爲如果我取消發佈在頁面上滑塊也使用jQuery或MooTools的,

,標籤將工作,但是當兩者都一起工作,我得到:

//Message: Object doesn't support this property or method 
//Line: 362 
//Char: 9 
//Code: 0 



    <?php 

// no direct access 
defined('_JEXEC') or die('Restricted access'); 

($params->get('loadjq')==1)? $mainframe->addCustomHeadTag('<script type="text/javascript" src="'.$module_base.'jquery.js"></script>'):''; 
$mainframe->addCustomHeadTag('<link type="text/css" rel="stylesheet" href="'.$module_base.'/style/basic/black/style.css" />'); 
$mainframe->addCustomHeadTag('<script type="text/javascript" src="'.$module_base.'tabs.js"></script>'); 
?> 

<script type='text/javascript'> 
    jQuery(function(){ 
     jQuery("#tx-tabs").organicTabs({ 
       "speed":"<?php echo $transition_speed;?>", 
       "action":'<?php echo $rotate_action;?>' 
      }); 
    }); 
    </script> 
<div id="tx-tabs" style="width:<?php echo $module_width,'px';?>"> 
      <?php if($control_panel=='top'):?> 
      <ul class="nav" style="width:<?php echo $tab_width,'px';?>"> 
       <?php for ($i=0; $i < $items; $i++) : ?> 
       <li ><a href="#<?php echo str_replace(' ', '',$list[$i]->title);?>" <?php echo ($i==0)? 'class="current"':'';?> ><?php echo $list[$i]->title;?></a></li> 
       <?php endfor;?> 
      </ul> 
      <?php endif;?> 
      <div class="list-wrap"> 
       <?php for ($i=0; $i < $items; $i++) : ?> 
       <div id="<?php echo str_replace(' ', '',$list[$i]->title);?>" <?php echo ($i!=0)?'class="hide "':'';?>> 
        <?php modOrganicTabHelper::renderItem($list[$i], $params, $access); ?> 
       <div class="clear"></div> 
       </div> 
       <?php endfor;?> 
      </div> <!-- END List Wrap --> 

      <?php if($control_panel=='bottom'):?> 
      <ul class="nav" style="width:<?php echo $tab_width,'px';?>"> 
       <?php for ($i=0; $i < $items; $i++) : ?> 
       <li ><a href="#<?php echo str_replace(' ', '',$list[$i]->title);?>" <?php echo ($i==0)? 'class="current"':'';?> ><?php echo $list[$i]->title;?></a></li> 
       <?php endfor;?> 
      </ul> 
      <?php endif;?> 

</div> 

有人能就如何troubleshooot幫助這個錯誤?

+0

提供您正在處理的代碼示例,您的問題很模糊。 –

+0

看到上面的代碼,我能夠通過使用jquery.noConflict擺脫警告,但標籤不會工作 – Tony77

+0

您提到了一個導致衝突的滑塊..什麼是您用於滑塊或腳本的擴展名你有寫過嗎 –

回答

2

如果僅在使用這兩個模塊時纔會出錯,則可能是它們彼此衝突。

很難知道發生了什麼,因爲你的問題很模糊;如果我們能看到實際發生的錯誤,這將有所幫助;即如果你可以提供一個鏈接到顯示它的測試頁面。如果我們能夠確定這裏有什麼庫(例如JQuery和Mootoools?或者僅僅是JQuery?)以及哪些版本,這也會有所幫助。

您給我們的PHP代碼在很大程度上也是不相關的,因爲錯誤是基於Javascript的,而且您向我們展示的JavaScript代碼的唯一內容是包含的內容。

但是,如果沒有更好的診斷數據,我會採取瘋狂的猜測。

如果你是對的,第二個模塊使用Mootools,重要的是要知道,如果你嘗試在同一個站點上使用JQuery和Mootools,可能會出現重大問題。 JQuery和Mootools都定義了一個名爲$()的函數,它是它們的核心函數,但它們之間的完全不同。

可能發生的情況是您正在加載這兩個庫,但是$()最終只引用加載其次的代碼(它將覆蓋首先加載的代碼),所以引用其他代碼的代碼圖書館將立即中斷,可能會出現類似於您所描述的錯誤。

理想情況下,你不會將它們兩個庫一起使用,因爲它有很多開銷,使兩個庫基本上做了一個非常類似的工作。最好選擇一個,並堅持使用使用它的模塊。因此,如果您使用基於Mootools的滑塊控件,我的建議是切換到基於JQuery的。 (或切換其他一切Mootools的,較容易)

如果同時擁有jQuery和MooTools的在同一頁上,然後有辦法以兼容方式運行兩個庫一起,但你需要知道你在做什麼。說明可以在JQuery和Mootools網站上找到。

這個問題的另一個可能的原因是如果兩個模塊都使用相同的庫(即JQuery),但包括它的不同版本。例如,如果一個附帶JQuery 1.3,另一個附帶1.6,那麼這兩個版本之間會有很大差異。淨效應可能與上述幾乎相同,原因相似。

如果出現這種情況,您應該嘗試確保您只在頁面上加載JQuery一次,並且您正在加載可能的最新版本。理想情況下,像JQuery這樣的庫不應該像在您的示例代碼中那樣加載模塊,而應該是您的核心模板的一部分,以便所有模塊都可以知道他們正在查看同一個單一版本。

希望有所幫助。

+0

嗨,滑塊確實使用不同版本的jquery;請參閱修改後的原始消息 – Tony77

+1

@TonyR - 在這種情況下,請按照我最後一段中的建議;確保你只在頁面上加載JQuery的一個副本,並且它是最新版本。另外,他們使用什麼版本? – Spudley

相關問題