Jquery 是否有可以让我控制开/关的.toggle()替代方法?

Jquery 是否有可以让我控制开/关的.toggle()替代方法?,jquery,html,Jquery,Html,我正在开发一个公文包网站,我希望能够标记页面中显示工作的项目,以便您可以切换可见性。我现在就用.toggle()设置了它,这很有效,只是如果我想使用多个标记,它会抛出其他标记。你看,这是我网站上的一项行动- 在左侧,您可以切换品牌和案例研究,但第三个图像被标记为两者,因此当您依次单击时,它会在应该显示时隐藏它,反之亦然 代码都在页面底部,但相关jQuery的一段代码如下: $("#branding").click(function () { $(this)

我正在开发一个公文包网站,我希望能够标记页面中显示工作的项目,以便您可以切换可见性。我现在就用.toggle()设置了它,这很有效,只是如果我想使用多个标记,它会抛出其他标记。你看,这是我网站上的一项行动-

在左侧,您可以切换品牌和案例研究,但第三个图像被标记为两者,因此当您依次单击时,它会在应该显示时隐藏它,反之亦然

代码都在页面底部,但相关jQuery的一段代码如下:

        $("#branding").click(function () {
            $(this).toggleClass("showItem");
            $(".brandingHide").toggle("slow", function () {

            });
        }); 


        $("#case").click(function () {
            $(this).toggleClass("showItem");
            $(".caseHide").toggle("slow", function () {

            });
        });
然后,具有适当的ID,并且类位于隐藏的网格中的div上。如果我有两个按钮——一个隐藏按钮和一个显示按钮,我可以让它工作,但那会很奇怪。我还可以通过将灰色作为一个单独的图层来解决这个问题,这样当你再次单击时,你实际上是在单击另一个项目,然后该项目消失并再次显示“显示”按钮。不过,一定有更好的办法

提前谢谢

解决方案


您只需完成动画逻辑即可。这种方法的优点是更详细,但仍然只有一个DOM查找

   $("#branding").click(function () {
       var $element = $(this);
       var isVisible = $element.hasClass('showItem');
       if(isVisible)
           $element.removeClass("showItem");
       } else {
           $element.addClass("showItem");
       }
    });

设置一个JSFIDLE,演示您想要做什么(或尽可能接近您的目标)。。。或者不使用
切换
?只需使用
hide/show
。我还想指出,这种用户体验令人困惑。我知道在这个例子中,用户界面令人困惑,幸运的是,这不是最终产品。我将设置一个JSFIDLE。如果你知道如何使一个按钮同时起到隐藏和显示的作用,那将是我所需要的。我只是没能让它工作。只是测试一下你是在隐藏还是在展示。你可以切换“showItem”类,这样你就可以用它来判断应该采取什么行动。这不起作用,但我觉得这是正确的方向。我点击,它什么也不做。我正在按照Mathletics的建议设置一个JSFIDLE。@FeiLauren只需将
隐藏和
显示添加到
if
else
子句中,您就完成了。我感觉很烦躁。不为我工作。jsFiddle就在这里:我试图做到这一点:我认为这可能是一个简单的逻辑问题,因为我的结构和命名机制现在没有最初的结构那么有意义。很抱歉。您的显示/隐藏已向后,并且在
if
之后缺少
{
(请检查控制台是否有错误).哈哈,是的,你是对的。Netbeans抓住了这个,我只是在小提琴上错过了。我们成功了!我会在答案中添加固定的JSFIDLE。大家都击掌!谢谢@Mathletics和@TysonWolker!解决方案供其他人参考: