Jquery显示和隐藏按钮单击,并在同一个单击上移动按钮

时间:2018-04-01 00:29:58

标签: javascript jquery

我是Jquery的初学者,我设法得到一个按钮来显示div,按钮在显示div时向右移动。我已经看到类似的问题,切换可见性等,但我也需要点击按钮移动按钮,但我试图遵循他们的逻辑,让它工作没有成功。

但是,当我再次点击它时(隐藏div并将按钮移回),我却无法正常工作。

有人能告诉我哪里出错了吗?

Html

<button id="myfilterFunction">Show/Hide</button>

    <div id="filterview">
    <?php echo $column_right; ?></div>
    </div>

Javascript

<script>
        $( "#myfilterFunction" ).click(function() {                                 
            if ($( "#filterview" ).css('display', 'none')) {
            $('#filterview').show();
            $( "#myfilterFunction" ).css('margin-left', '300px');
            }

           if ($( "#filterview" ).css('display', 'block')) {
            $('#filterview').hide();
            $( "#myfilterFunction" ).css('margin-left', '0');
            }
            });
</script>

1 个答案:

答案 0 :(得分:1)

您没有正确检查元素的可见性。您应该使用.is(":visible")检查元素的可见性(使用jQuery)并相应地处理代码:

$("#myfilterFunction").click(function () {
    // If the element is visible
    if ($("#filterview").is(":visible")) {
        // Code to process
        $('#filterview').hide();
        $("#myfilterFunction").css('margin-left', '0');
    } else {
        // If the element is not visible
        $('#filterview').show();
        $("#myfilterFunction").css('margin-left', '300px');
    }
});

$("#filterview").css('display', 'none')用于实际设置元素的css显示属性。