Jquery点击下拉列表不工作

jquery clicking on li to dropdown is not working

本文关键字:工作 下拉列表 Jquery      更新时间:2023-09-26

我想要的是在舔li时将列表向下。

然而,由于某些原因,它不能工作。

jquery代码

$document.read(function(){

        var mainnav = $('#main-nav'),
            openActive = mainnav.is ('.open-active'),
            navActive = mainnav.find ('> .active');
        mainnav.find ('> .dropdown > a').bind ('click', navClick);
        if (openActive && navActive.is ('.dropdown')) {
            navActive.addClass ('opened').find ('.sub-nav').show ();
        }

    function navClick (e) {
        e.preventDefault ();
        var li = $(this).parents ('li');
        if (li.is ('.opened')) {
            closeAll ();
        } else {
            closeAll ();
            li.addClass ('opened').find ('.sub-nav').slideDown ();
        }
    }
    function closeAll () {
        $('.sub-nav').slideUp ().parents ('li').removeClass ('opened');
    }

});

你可以看到,我已经将正确的动作绑定到a tag

请告诉我我的代码有什么问题,没有给我一个全新的代码,我不是在要求一个新的解决方案,我是在问我的错误是什么

感谢您的帮助、时间和努力。

请在您的代码中更正document ready .$(document).ready把这个

替换掉
$document.read

$(document).ready

$document.read(第一行)是打字错误,还是这是您的实际代码?如果是,那就修复它;应该是$(document).ready

在您的代码中将$document.read(function(){})更改为$(document).ready(function(){// place your code here})$(function(){ // place your code here})

ready()函数声明中有一个错别字,您应该声明ready()而不是read():

$(document).ready(function(){ //Here is the typo
  var mainnav = $('#main-nav'),
  openActive = mainnav.is ('.open-active'),
  navActive = mainnav.find ('> .active');
  mainnav.find ('> .dropdown > a').bind ('click', navClick);
  if (openActive && navActive.is ('.dropdown')) {
    navActive.addClass ('opened').find ('.sub-nav').show ();
  }
  function navClick (e) {
    e.preventDefault ();
    var li = $(this).parents ('li');
    if (li.is ('.opened')) {
      closeAll ();
    } else {
      closeAll ();
      li.addClass ('opened').find ('.sub-nav').slideDown ();
    }
  }
  function closeAll () {
    $('.sub-nav').slideUp ().parents ('li').removeClass ('opened');
  }
});