【问题标题】:jQuery .toggle() not working as expected with second function?jQuery .toggle() 不能按预期使用第二个函数?
【发布时间】:2010-06-14 10:16:17
【问题描述】:

我正在尝试创建一个按钮来显示/隐藏其下方的 div,一切正常,我只是在最后一点挣扎!

我需要区分它是显示还是隐藏动作,以便我可以将变量传递到其他地方,这就是我所拥有的......

$(this).find('.hide-close').click(
            function() {
                $(this).siblings('.dragbox-content').toggle(function() { 

                    alert($(this).parent().attr("id") + ' Show');

                    },function() { 

                    alert($(this).parent().attr("id") + ' Hide');

                    }

                );

            })
        .end()
        });

如果使用下面的代码,取出toggle()中的第二个函数,它可以工作吗?!但是我没有显示/隐藏变量。

$(this).find('.hide-close').click(
            function() {
                $(this).siblings('.dragbox-content').toggle(function() { 

                    alert($(this).parent().attr("id") + ' Show');

                    }

                );

            })
        .end()
        });

提前感谢您的帮助,希望这真的很简单,我只是看不到! :)

【问题讨论】:

    标签: jquery function toggle


    【解决方案1】:

    你可以在函数内部使用$(this).is(":visible")来检查它是否可见。

    【讨论】:

    • 太棒了 :) 来测试我用过这个.. if($(this).is(":hidden")) { alert($(this).parent().attr(" id") + '现在被隐藏了。'); } 完美运行,感谢您的帮助!
    【解决方案2】:

    jQuery 切换函数用于分配函数以在事件(鼠标单击)发生时执行。要真正触发事件,您必须调用 click 函数。

    $('.dragbox-content').toggle(function() { 
            alert($(this).parent().attr("id") + ' Show');
        },function() { 
            alert($(this).parent().attr("id") + ' Hide');
        }
    );
    

    使用这段代码来分配点击时要执行的功能。

    $(this).find('.hide-close').click(
    function() {
        $(this).siblings('.dragbox-content').click();
    })
    .end();
    

    这会触发事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-04-26
      • 1970-01-01
      相关资源
      最近更新 更多