2013-05-13 88 views
0

與我的FTP客戶端混淆後,我的Wordpress'header.php被刪除,所以我需要重新編碼它,以前工作的jQuery腳本停止工作,但我找不到問題。jQuery Accordion停止工作

這是一個手風琴腳本,可以有多個部分同時開放:

<script type="text/javascript"> 

$(document).ready(function() { 
     $(".post-list").addClass("ui-accordion ui-accordion-icons ui-widget ui-helper-reset") 
      .find("h3.entry-title") 
      .addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-top ui-corner-bottom") 
      .hover(function() { $(this).toggleClass("ui-state-hover"); }) 
      .click(function() { 
       $(this) 
       .toggleClass("ui-accordion-header-active ui-state-active ui-state-default ui-corner-bottom") 
       .next().toggleClass("ui-accordion-content-active").slideToggle(); 
       return false; 
     }) 
     .next() 
     .addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom") 
     .hide(); 

     var d= 0; 
     $('.post').each(function() { 
      $(this).delay(d).fadeIn(300); 
      d += 100; 
     }); 
}); 

</script> 

它應該找到H3的,添加類和隱藏以下div的。我把它放在我的header.php的頭部區域,所有必要的庫都被加載,但不知怎的,腳本似乎根本不起作用。

任何人都可以找到一個錯誤或建議什麼可能是錯誤的腳本的實施?

注意:我試着在本地虛擬網站上完全相同的腳本,它的工作原理。

謝謝!

+0

可能缺少jQuery的css文件 – 2013-05-13 23:21:46

+0

你檢查控制檯,你得到任何錯誤? – ocanal 2013-05-13 23:22:21

+0

它說「找不到變量:$」 – R4ttlesnake 2013-05-13 23:25:13

回答

0

如果您在控制檯上發現「無法找到變量:$」錯誤,這意味着jQuery未加載或衝突任何其他庫。

首先檢查控制檯上是否存在window.$window.jQuery

,並嘗試使用jQuery代替$

<script type="text/javascript"> 
$.noConflict(); 
jQuery(document).ready(function() { 
     jQuery(".post-list").addClass("ui-accordion ui-accordion-icons ui-widget ui-helper-reset") 
      .find("h3.entry-title") 
      .addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-top ui-corner-bottom") 
      .hover(function() { jQuery(this).toggleClass("ui-state-hover"); }) 
      .click(function() { 
       jQuery(this) 
       .toggleClass("ui-accordion-header-active ui-state-active ui-state-default ui-corner-bottom") 
       .next().toggleClass("ui-accordion-content-active").slideToggle(); 
       return false; 
     }) 
     .next() 
     .addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom") 
     .hide(); 

     var d= 0; 
     jQuery('.post').each(function() { 
      jQuery(this).delay(d).fadeIn(300); 
      d += 100; 
     }); 
}); 

+0

對不起,我沒有使用'window。$ '等等,我嘗試了代碼,但仍然沒有奏效。如果我將原始代碼放在一個單獨的.js文件中,並使用array('jquery')'將其排入到functions.php中,它就可以工作。但我仍然無法弄清楚爲什麼它以前工作? – R4ttlesnake 2013-05-13 23:48:57

+0

嘗試[this](http://stackoverflow.com/a/12225872/603127)它可能工作。正如你所說你的腳本代碼在jQuery加載之前工作。和似乎沒有任何辦法使非文件js代碼工作後jQuery加載除[this](http://stackoverflow.com/a/12225872/603127) – ocanal 2013-05-14 00:12:14

+0

我想我會堅持的方法與一個單獨的JS文件,似乎是最安全的方式。但感謝您的幫助和wind.onload解釋! – R4ttlesnake 2013-05-14 11:35:57