gpt4 book ai didi

javascript - 为什么我的所有按钮的下拉内容都相同

转载 作者:太空宇宙 更新时间:2023-11-04 01:17:03 25 4
gpt4 key购买 nike

我的页眉中有两个按钮,但是当我单击两个按钮时,内容是相同的。 enter image description here

enter image description here

这就像当我点击一个按钮时我同时点击了两个我不知道为什么。

我认为问题出在我的 jquery 中:

jQuery(document).ready(function($){
//open/close mega-navigation
$('.cd-dropdown-trigger ').on('click', function(event){
event.preventDefault();
toggleNav();
});

//close meganavigation
$('.cd-dropdown .cd-close ').on('click', function(event){
event.preventDefault();
toggleNav();
});

//on mobile - open submenu
$('.has-children').children('a').on('click', function(event){
//prevent default clicking on direct children of .has-children
event.preventDefault();
var selected = $(this);
selected.next('ul').removeClass('is-hidden').end().parent('.has-children').parent('ul').addClass('move-out');
});

//on desktop - differentiate between a user trying to hover over a dropdown item vs trying to navigate into a submenu's contents
var submenuDirection = ( !$('.cd-dropdown-wrapper #botao1').hasClass('open-to-left') ) ? 'right' : 'left';
$('.cd-dropdown-content').menuAim({
activate: function(row) {
$(row).children().addClass('is-active').removeClass('fade-out');
if( $('.cd-dropdown-content .fade-in').length == 0 ) $(row).children('ul').addClass('fade-in');
},
deactivate: function(row) {
$(row).children().removeClass('is-active');
if( $('li.has-children:hover').length == 0 || $('li.has-children:hover').is($(row)) ) {
$('.cd-dropdown-content').find('.fade-in').removeClass('fade-in');
$(row).children('ul').addClass('fade-out')
}
},
exitMenu: function() {
$('.cd-dropdown-content').find('.is-active').removeClass('is-active');
return true;
},
submenuDirection: submenuDirection,
});

//submenu items - go back link
$('.go-back').on('click', function(){
var selected = $(this),
visibleNav = $(this).parent('ul').parent('.has-children').parent('ul');
selected.parent('ul').addClass('is-hidden').parent('.has-children').parent('ul').removeClass('move-out');
});

function toggleNav(){
var navIsVisible = ( !$('.cd-dropdown').hasClass('dropdown-is-active') ) ? true : false;
$('.cd-dropdown').toggleClass('dropdown-is-active', navIsVisible);
$('.cd-dropdown-trigger').toggleClass('dropdown-is-active', navIsVisible);
if( !navIsVisible ) {
$('.cd-dropdown').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend',function(){
$('.has-children ul').addClass('is-hidden');
$('.move-out').removeClass('move-out');
$('.is-active').removeClass('is-active');
});
}
}

//IE9 placeholder fallback
//credits http://www.hagenburger.net/BLOG/HTML5-Input-Placeholder-Fix-With-jQuery.html
if(!Modernizr.input.placeholder){
$('[placeholder]').focus(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
}).blur(function() {
var input = $(this);
if (input.val() == '' || input.val() == input.attr('placeholder')) {
input.val(input.attr('placeholder'));
}
}).blur();
$('[placeholder]').parents('form').submit(function() {
$(this).find('[placeholder]').each(function() {
var input = $(this);
if (input.val() == input.attr('placeholder')) {
input.val('');
}
})
});
}
});

我的 html:

    </head>
<body>

<header>
<nav class="navbar navbar-default navbar-custom" role="navigation">
<div class="container">
<a class="navbar-left" href="#"><img src="assets/img/logo-01.png" style="max-width:70px"/></a>
<div class="navbar-header navbar-left">
<button type ="button" class="navbar-toggle" data-toggle="collapse" data-target="#collapse-1">
<span class="sr-only"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>

<div class="collapse navbar-collapse js-navbar-collapse">
<ul class="nav navbar-nav">
<div class="cd-dropdown-wrapper">
<button type="button" data-toggle="dropdown" id="botao1" class="btn btn-default dropdown-toggle cd-dropdown-trigger">Categorias</button>

<nav class="cd-dropdown">

<a href="#0" class="cd-close">Close</a>
<ul class="cd-dropdown-content">

<li class="has-children">
<a href="http://codyhouse.co/?p=748">Eletrodomésticos</a>

<ul class="cd-secondary-dropdown is-hidden">
<li class="go-back"><a href="#0">Menu</a></li>
<li class="see-all"><a href="http://codyhouse.co/?p=748">Todos os eletrodomésticos</a></li>
<li class="has-children">
<a href="http://codyhouse.co/?p=748">Eletrodomésticos</a>

<ul class="is-hidden">
<li class="go-back"><a href="#0">Eletrodomésticos</a></li>
<li class="see-all"><a href="http://codyhouse.co/?p=748">Todos os eletrodomésticos</a></li>
<!--<li class="has-children">-->
<li><a href="#0">Grandes Eletro de cozinha</a></li>
<!-- Funcionalidade para colocar dps outras subcategorias, não para já!
<ul class="is-hidden">
<li class="go-back"><a href="#0">Accessories</a></li>
<li class="see-all"><a href="http://codyhouse.co/?p=748">All Benies</a></li>
<li><a href="http://codyhouse.co/?p=748">Caps &amp; Hats</a></li>
<li><a href="http://codyhouse.co/?p=748">Gifts</a></li>
<li><a href="http://codyhouse.co/?p=748">Scarves &amp; Snoods</a></li>
</ul>-->

<!--<li class="has-children">-->
<li><a href="#0">Eletrodoméstico de Limpeza</a></li>
<!-- Funcionalidade para colocar dps outras subcategorias, não para já!
<ul class="is-hidden">
<li class="go-back"><a href="#0">Accessories</a></li>
<li class="see-all"><a href="http://codyhouse.co/?p=748">All Caps &amp; Hats</a></li>
<li><a href="http://codyhouse.co/?p=748">Beanies</a></li>
<li><a href="http://codyhouse.co/?p=748">Caps</a></li>
<li><a href="http://codyhouse.co/?p=748">Hats</a></li>
</ul>
-->
<li><a href="http://codyhouse.co/?p=748">Peq. Eletro de Cozinha</a></li>
<li><a href="http://codyhouse.co/?p=748">Aquecimento e Climatização</a></li>
<li><a href="http://codyhouse.co/?p=748">Bricolage</a></li>

</ul>
</li>






</ul> <!-- .cd-secondary-dropdown -->
</li> <!-- .has-children -->


</ul> <!-- .cd-dropdown-content -->
</nav> <!-- .cd-dropdown -->





</div> <!-- .cd-dropdown-wrapper -->




<div class="cd-dropdown-wrapper">
<button type="button" data-toggle="dropdown" id="botao2" class="btn btn-default dropdown-toggle cd-dropdown-trigger">Supermercados</button>

<nav class="cd-dropdown">

<a href="#0" class="cd-close">Close</a>
<ul class="cd-dropdown-content">

<li class="has-children">
<a href="http://codyhouse.co/?p=748">Cona</a>

<ul class="cd-secondary-dropdown is-hidden">
<li class="go-back"><a href="#0">Menu</a></li>
<li class="see-all"><a href="http://codyhouse.co/?p=748">Todos os eletrodomésticos</a></li>
<li class="has-children">
<a href="http://codyhouse.co/?p=748">Eletrodomésticos</a>

<ul class="is-hidden">
<li class="go-back"><a href="#0">Eletrodomésticos</a></li>
<li class="see-all"><a href="http://codyhouse.co/?p=748">Todos os eletrodomésticos</a></li>
<!--<li class="has-children">-->
<li><a href="#0">Grandes Eletro de cozinha</a></li>
<!-- Funcionalidade para colocar dps outras subcategorias, não para já!
<ul class="is-hidden">
<li class="go-back"><a href="#0">Accessories</a></li>
<li class="see-all"><a href="http://codyhouse.co/?p=748">All Benies</a></li>
<li><a href="http://codyhouse.co/?p=748">Caps &amp; Hats</a></li>
<li><a href="http://codyhouse.co/?p=748">Gifts</a></li>
<li><a href="http://codyhouse.co/?p=748">Scarves &amp; Snoods</a></li>
</ul>-->

<!--<li class="has-children">-->
<li><a href="#0">Eletrodoméstico de Limpeza</a></li>
<!-- Funcionalidade para colocar dps outras subcategorias, não para já!
<ul class="is-hidden">
<li class="go-back"><a href="#0">Accessories</a></li>
<li class="see-all"><a href="http://codyhouse.co/?p=748">All Caps &amp; Hats</a></li>
<li><a href="http://codyhouse.co/?p=748">Beanies</a></li>
<li><a href="http://codyhouse.co/?p=748">Caps</a></li>
<li><a href="http://codyhouse.co/?p=748">Hats</a></li>
</ul>
-->
<li><a href="http://codyhouse.co/?p=748">Peq. Eletro de Cozinha</a></li>
<li><a href="http://codyhouse.co/?p=748">Aquecimento e Climatização</a></li>
<li><a href="http://codyhouse.co/?p=748">Bricolage</a></li>

</ul>
</li>






</ul> <!-- .cd-secondary-dropdown -->
</li> <!-- .has-children -->


</ul> <!-- .cd-dropdown-content -->
</nav> <!-- .cd-dropdown -->





</div> <!-- .cd-dropdown-wrapper -->




</ul>



<form class="navbar-form navbar-left">
<div class="form-group">
<input type="text" class="form-control" placeholder="Pesquisar Produto">
</div>
<button type="submit" class="btn btn-danger">
<i class="glyphicon glyphicon-search"></i>
</button>
</form>
</div>
</div>
</div>


</nav>

</header>

我试过放置片段,但放置 cdns 链接不起作用。如果您需要什么,请告诉我。

最佳答案

$('.cd-dropdown')toggleNav 方法中选择所有具有类 cd-dropdown 的元素,而不仅仅是你选择的元素点击。

所以您的 toggleNav 方法会在调用时切换所有下拉菜单。


解决方案:

您需要将需要处理下拉列表的引用传递给toggleNav 方法

$('.cd-dropdown-trigger, .cd-dropdown .cd-close').on('click', function(event){
event.preventDefault();
toggleNav($(this).closest('.cd-dropdown-wrapper'));
});

仅在 toggleNav 内处理与该引用相关的元素

function toggleNav(dropdown){
var navIsVisible = ( !$('.cd-dropdown', dropdown).hasClass('dropdown-is-active') ) ? true : false;
$('.cd-dropdown', dropdown).toggleClass('dropdown-is-active', navIsVisible);
$('.cd-dropdown-trigger', dropdown).toggleClass('dropdown-is-active', navIsVisible);
if( !navIsVisible ) {
$('.cd-dropdown', dropdown).one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend',function(){
$('.has-children ul', dropdown).addClass('is-hidden');
$('.move-out', dropdown).removeClass('move-out');
$('.is-active', dropdown).removeClass('is-active');
});
}
}

PS: $('selector', context) is same as context.find('selector'). You can use the second if it makes code more clear.

关于javascript - 为什么我的所有按钮的下拉内容都相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49924402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com