2013-08-06 55 views
0

我有一個網站here無法從外部文件調用重複的js?

我有這個腳本調用的便箋工作適當的功能...

//Functionality for Sticky Notes 
    $(function() { 
     $("#content").stickynote({ 
      size    : 'large', 
      containment  : 'content', 
      event   : 'dblclick', 
      color   : '#de5900'     
      }); 


     $("#newsticky").stickynote({ 
      size    : 'large', 
      containment  : 'content', 
      color   : '#de5900' 
      }); 
     }); 

這不是一個重複的一段JavaScript代碼,但我試圖把所有這些頭腳本一個文件。你可以看到我已經有幾個了。您可以查看文件here

當我將文件加載到索引頁here時,腳本被適當調用(jQuery菜單和兩個不同的滑塊)。

當我在粘滯便箋頁上調用同一個文件時,除了jquery菜單無法正常工作外,我無法正常工作。

我打電話頁面(在</body>標籤之前的底部相同的腳本...

<!-- All DOM Ready Scripts --> 
<script type="text/javascript" src="js/scripts.js"></script> 

不知道我在做什麼錯。

+1

你在包含jquery.js的頁面上不工作嗎?我注意到你在http://webfro.gs/south/kb2/notes.html頁面上包含了兩個不同版本的jquery,版本是1.7.1,然後是1.3.2,所以這可能會導致一些問題。然後在您的其他頁面上添加jQuery版本1.9.1 - 您可能會更好地弄清楚您需要哪個版本並隨時隨地使用它。 (另外,它不會導致問題,但是在您的scripts.js中,您可以將代碼組合到一個'$(document).ready(...)'處理程序中。) – nnnnnn

+1

P.S.打開瀏覽器的JavaScript控制檯(Chrome中的ctrl-shift-j)並查看是否有任何錯誤報告。 – nnnnnn

+0

@nnnnnn我將不得不花費一些時間在那個。粘滯便箋的功能適用於1.3.2,但不適用於1.9.1。你有沒有想過如何更新我的代碼以使其與1.9.1兼容? – webfrogs

回答

0

嘗試採取代碼塊out of $(function() { }); 此外,如果DOM已準備就緒(即,如果您將腳本包括在文件的底部,並且所有節點都在DOM之後) - 那麼您不需要將bannerRotators放置在$(document).ready(function() {});

你的代碼應該變成這樣的東西:

$("#rotator1").bannerRotator({...}); 
$("#rotator2").bannerRotator({...}); 
$("#content").stickynote({...}); 
$("#newsticky").stickynote({...}); 
+0

即使準備好的處理程序是不必要的(儘管在這種情況下,我認爲這是必要的,因爲腳本包含在頭部),爲什麼它實際上會停止代碼的工作? – nnnnnn

+0

你是對的,準備處理程序不應該停止腳本工作。我只是想簡化代碼。提到的原始quesiton包括頁面底部的腳本。 – beluga