2017-08-30 16 views
4

私は同じマップにある別のファイルにjqueryを持っていますが、私は.slideToggle関数を有効にするためにこのコードを使用しています。しかし、それは動作していない、なぜですか?Uncaught TypeError:.slideToggleは関数ではありません

jQuery(document).ready(function ($) { 

    // get li items 
    var ul = document.getElementById("menu-footermenu"); 
    var items = ul.getElementsByTagName("li"); 

    // display 5 li items, hide others 
    for (var i = 0; i < items.length; ++i) { 
     if (i > 5) { 
      items[i].style.display = "none" 
     } 
    } 

    // when clicking on more catogories button, display all items 
    $('#morecat').click(function() { 
     for (var i = 0; i < items.length; ++i) { 
      if (i > 5) { 
       items[i].slideToggle(); 
       document.getElementById("morecat").style.display = "none"; 
      } 
     } 
    }); 
}); 

私はエラーを取得しています:itemsの内容は、したがってslideToggle()機能が利用できない、jQueryのオブジェクト要素オブジェクト、ではありませんので、

Uncaught TypeError: .slideToggle is not a function

答えて

2

問題があります。あなたが今持っている、あなたの代わりに奇妙半分/半分の溶液を、jQueryのを使用するすべてのロジックを変換することができます

$(items[i]).slideToggle(); 

を代わりに::

jQuery(function ($) { 
    var $ul = $("#menu-footermenu"); 
    var $items = $("li"); 
    $items.filter(':gt(4)').hide(); 

    $('#morecat').click(function() { 
    $items.filter(':gt(4)').slideToggle(); 
    $(this).hide(); 
    }); 
}); 

は、あなたがそれらを変換する必要があり、これを修正するには
+0

ありがとうございました! –

+0

喜んで助けてください。純粋なjQueryソリューションでも答えを更新しました。 –

+0

私は、数分待つ必要があった。 –

1

スリム jqueryのバージョンを使用しないようにしてください。これはアニメーションのような効果を除きます。

関連する問題