2011-03-18 39 views
37

我試圖在我的asp.net mvc網站上使用moveBoxes插件,它不工作(很明顯)。 我有我的頭標記進口的的Site.Master的movingboxes.js像這樣Uncaught TypeError:Object#<Object> has no method'movingBoxes'

<script src="<%: Url.Content("~/Scripts/jquery.movingboxes.js")%>" type="text/javascript"></script> 

和瀏覽器成功獲取該腳本。現在我有一個階段從它的jQuery的這一點點調用的Site.Master繼承常規視圖的movingBoxes插件

<script type="text/javascript"> 
    $(document).ready(function() { 
     $($('#slider-one')); 
     $('#slider-one').movingBoxes({ 
      startPanel: 1,  
      panelWidth: .5,  
      fixedHeight: false 
     }); 

     $('#slider-two').movingBoxes({ 
      startPanel: 1,  
      panelWidth: .5,  
      fixedHeight: false 
     }); 
    }); 
</script> 

當我查看該頁面。每一件事情正常工作(包括其他jQuery的東西),除了這個插件,我得到這個錯誤

enter image description here

這裏是錯誤 enter image description here

任何幫助,將不勝感激的描述

編輯

所以顯然我有這個:

<script type="text/javascript" src="../../Scripts/jquery-1.4.1.js" /> 
    <script src="<%: Url.Content("~/Scripts/jquery.movingboxes.js")%>" type="text/javascript"></script> 

現在它的工作原理是將其更改爲這樣:

<script type="text/javascript" src="../../Scripts/jquery-1.4.1.js"></script> 
    <script src="<%: Url.Content("~/Scripts/jquery.movingboxes.js")%>" type="text/javascript"></script> 
+0

我沒有看到任何錯誤(除了我不知道什麼是'$($('#slider-one'));'掛在那裏的頂部)。也許檢查文件是否包含正確。 – Haochi 2011-03-18 17:53:34

+2

你能否確認jQuery javascript文件在「移動框」之前加載?如果他們錯誤的順序,你會得到像你所看到的錯誤。 – Neil 2011-03-18 17:58:07

+0

他之前曾經用$('#slider-one')設置了一個警報,這裏是頂部懸掛選擇器的來源。 – Hacknightly 2011-03-18 18:03:12

回答

41

有一些事情你可以嘗試得到這個工作。

  1. 絕對確保你的腳本被拉入的頁面,以檢查一種方法是通過使用Chrome的調試器的「源」選項卡,然後搜索文件。

  2. 確定在包含jQuery之後包含了腳本,因爲它肯定依賴於該腳本。

除此之外,我檢查了API,你肯定做的一切正確,據我所知。祝你好運!

編輯:確保關閉腳本標記。下面有一個答案指出這是解決方案。

+3

thx很多男人....我一直在尋找這麼長的時間......最終結果是JavaScript文件的排序...... thx再次 – 2012-06-27 12:19:29

+1

這並沒有工作,因爲缺少結束標記..請在下面修改來自SaschaM78的正確答案 – 2012-11-15 10:54:15

+9

我還會說:確保您不會無意中多次包含jQuery,否則第二次導入可能會擦除已導入的插件。 – 2013-02-14 21:07:55

4

我有同樣的問題。 我改變了頭部部分的腳本順序,它對我很有幫助。 插件需要的每個腳本 - 需要保持接近。

例如:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.min.js"></script> 
<script type="text/javascript" src="http://cloud.github.com/downloads/malsup/cycle/jquery.cycle.all.latest.js"></script> 
<script type="text/javascript"> 
$(document).ready(function() { 
    $('#slider').cycle({ 
      fx: 'fade' 
     }); 
    }); 
</script> 
14

請記住,只有少數幾個元素可以是自閉,大多數人必須通過添加明確的結束標記關閉。在上述情況下,第一個腳本標記沒有正確關閉,第二個腳本的結束腳本標記關閉了腳本部分,導致只有第一個腳本作爲外部腳本源加載並忽略第二個腳本。

更多信息哪些標籤可以是自我封閉,看看對於HTML5的W3C草案(雖然定義在早期的HTML版本並沒有什麼不同):

http://www.w3.org/TR/html5/syntax.html#end-tags(8.1.2.1,6點)

1

我也有這樣的問題,因爲我使用IMG標籤和UL標籤。

嘗試將「角落」插件應用於元素,例如$('#mydiv').corner(),$('#myspan').corner(),$('#myp').corner(),但不適用於$('#img').corner()! 此規則與將子DIV添加到指定元素以模擬圓角效果有關。正如我們所知,IMG元素不能有任何子元素。

我已經解決了這個問題,通過在div內包裝一個需要的元素並將IMG改爲帶有背景的DIV:CSS屬性。

祝你好運!

4

我剛剛有與jQuery的響應幻燈片插件(http://responsive-slides.viljamis.com/)相同的問題。

我不使用jQuery的短版$(".rslides").responsiveSlides(..而是長版固定它:jQuery(".rslides").responsiveSlides(...

所以切換$jQuery,以免造成衝突或使用適當的jQuery的無衝突模式(http://api.jquery.com/jQuery.noConflict/

+0

謝謝,我也遇到了與響應式幻燈片相同的問題。 – 2013-06-24 15:44:28

2

當我遇到這個問題時,是因爲我試圖使用實際的函數來代替匿名函數。

錯誤:

$(document).on('change', "#MyId", MyFunction()); 

正確

$(document).on('change', "#MyId", MyFunction); 

或也是正確的,如果你需要傳遞事件對象或其他PARAMS。

$(document).on('change', "#MyId", function(e) { MyFunction(e); }); 
+1

我相信JavaScript,你仍然可以直接進入MyFunction,而不用包裝它一個匿名函數,只需刪除paranthesis就行了:$(document).on('change',「#MyId」,MyFunction); – Joshua 2012-07-11 14:50:36

+0

非常感謝你提及這個!我已經更新了答案並重構了我正在進行的項目。 – 2012-07-11 23:08:30

1

其實我認爲你只下載了腳本的一部分。 嘗試檢查「核心」複選框,然後下載jQuery站點中的整個腳本。

0

確保使用正確版本的jQuery也是一個好主意。我最近收購了一個使用jQuery 1.6.2的項目,該項目與hoverIntent插件不兼容。將它升級到最新版本可以解決這個問題。

0

我發現我正在使用我的rendorTo div的選擇器,我正在使用它來呈現我的列高圖。顯然它爲你添加了選擇器,所以你只需要傳遞id。

renderTo: $('#myGraphDiv')爲一個字符串'myGraphDiv',這個錯誤希望能夠幫助別人解決錯誤。

1

我有同樣的問題,我已經連接jQuery兩次。後來的版本覆蓋了我的插件。

我剛剛刪除了後來開始工作的jquery。

+0

我也意外犯了這個錯誤 – 2014-08-03 23:49:15

相關問題