JavaScript   发布时间:2022-04-16  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了javascript – 在for循环的迭代中什么可能导致html和脚本的行为不同?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试建立一个侧面导航栏,其中列出类别,单击类别后,子类别的子列表将显示在类别的下方.如果再次点击类别,则子列表合同.

所以我正在跨类别对象运行一个循环.在这个外部循环中,我包含了一个内部循环,用于列出子类别和一个隐藏子菜单的脚本,并且仅当点击类别时才滑动它.我使用django模板标签为我的html元素动态分配类名,并在脚本中引用它们.所以,对于循环迭代,有一个子类别列表和每个类别的专用脚本,并且它们具有唯一的类名称,因此没有重叠的机会.所以奇怪的是,这对大多数类别都是完美的,但是一些类别和子菜单保持打开状态,当点击页面重新加载的类别时.

我不明白,什么可能导致完全相同的代码(在for循环中运行)的行为如此不同?

这是我的代码:

@H_616_8@{% load staticfiles %} {% load i18n pybb_tags forumindexlistbycat %} {% caTindexlist as caTindexlisted %} {% block body %}<div class="col-sm-12 col-md-12 col-xs-12 col-lg-12 body-container leftsidenavigator" style="margin-top:15px;"> <div class="col-sm-12 col-md-12 col-xs-12 col-lg-12 leftsidenavigator-inner" style="padding:0px;"> <h2><center>Categories</center></h2> <ul class="caTindexlist catlistcat nav-collapse89"> {% for category in caTindexlisted %} <li class="caTindexlistitem category-name{{Category.namE}}{{Category.namE}}" style="font-weight:600;padding-right:20px;"><a href="">{{Category.namE}}</a></li> <ul style="padding:0px;" class="nav-collapse88"> {% for forum in category|forumindexlistbycat %} <li class="catlistforum{{Category.namE}}{{Category.namE}} forum-name" style="padding-right:10px;"><a href="{{ forum.get_absolute_url }}">{{forum.namE}}</a></li> {% endfor %}</ul><script> $(function() { $(".catlistforum{{Category.namE}}{{Category.namE}}").hide(); $(".category-name{{Category.namE}}{{Category.namE}} a").click(function(E) { e.preventDefault(); $(".catlistforum{{Category.namE}}{{Category.namE}}").slideToggle(); if(!($(this).parent('li').siblings('div').children('ul').children('div').is(":visible"))){ $(this).parent('li').siblings('div').children('ul').children('div').is(":visible").slideToggle(); }}); }) </script> {% endfor %} </ul> </div> </div> {% endblock %} {% block theme_script %}<script src="{% static "pinax/js/theme.js" %}"></script>{% endblock %}

解决方法

最可能的原因是对类名使用{{Category.namE}}.

代码片段没有显示category.name接受的值,我猜测它可以是用户输入吗?@H_772_15@有关类名称的内容,请参见“属性值”一节中的naming rules.

它可以使用模板标签slugify({{Category.name | slugify}})来解决),但我的建议是尝试重新设计解决方案.

大佬总结

以上是大佬教程为你收集整理的javascript – 在for循环的迭代中什么可能导致html和脚本的行为不同?全部内容,希望文章能够帮你解决javascript – 在for循环的迭代中什么可能导致html和脚本的行为不同?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。