gpt4 book ai didi

jQuery 切换不切换

转载 作者:行者123 更新时间:2023-12-01 06:39:46 25 4
gpt4 key购买 nike

我有一个页面,其中有一堆假下拉菜单,其编码如下(我无法真正更改 HTML):

<div class="select">
<div class="wrapper calcdropdown">
<a href="#" class="dd-openercalc">Select a calculator</a>
<a href="#" class="dd-opener pulldown-arrow">&nbsp;</a>
</div>
<ul class="selectbox">
<li>Dropdown item 1</li>
<li>Dropdown item 2</li>
<li>Dropdown item 3</li>
<ul>
</div>

当我单击 calcdropdown DIV 内的任一链接时,我需要切换相应的选择框 UL。当我使用toggle()时,当我第一次单击链接时,选择框 UL 会出现,但当我再次单击链接时,选择框 UL 不会消失。

var $j = jQuery.noConflict();
$j(document).ready(function() {
// hide all the dropdowns by default
$j(".selectbox").hide();

$j('.calcdropdown a').live('click',function(e) {
// hide the dropdowns in case another one's open
$j(".selectbox").hide();
var self = $j(this);
// show the selectbox for this link
var thisSelectbox = $j(this).parents('.select').children('.selectbox').toggle();
e.preventDefault();
});
});

这也不起作用:

var $j = jQuery.noConflict();
$j(document).ready(function() {
$j(".selectbox").hide();

$j('.calcdropdown a').live('click',function(e) {
$j(".selectbox").hide();
var self = $j(this);
var thisSelectbox = $j(this).parents('.select').children('.selectbox');
if(thisSelectbox.is(':hidden')) {
thisSelectbox.show();
} else {
thisSelectbox.hide();
}
});
});

如何在显示选择框后隐藏它们?

最佳答案

从点击函数中删除 $j(".selectbox").hide();

否则,您始终在点击函数中执行以下步骤:

  1. 隐藏元素
  2. 切换元素(使其始终可见,因为您之前隐藏了它)

编辑:(我没有意识到您使用了多个这些元素)

要隐藏除与点击相关的之外的所有 .selectbox,请使用 not():

var $j = jQuery.noConflict();
$j(document).ready(function() {
// hide all the dropdowns by default
$j(".selectbox").hide();

$j('.calcdropdown a').live('click',function(e) {

var target=$j(this).parents('.select').children('.selectbox');
$j('.selectbox').not(target.toggle()).hide();
e.preventDefault();
});
});

http://jsfiddle.net/doktormolle/qG8ps/

关于jQuery 切换不切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6528627/

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