jQuery slideDown slideUP - 隐藏按钮

时间:2011-01-25 22:30:30

标签: javascript jquery slidedown slideup

我正在尝试编写一个非常简单的向上滑动和滑动功能,在按下按钮后隐藏按钮,但我的javascript技巧很少,我肯定会做些傻事。

我不工作的是,当用户按下Cancel时,菜单应该向上滑动并重新出现Show按钮。继承人的代码

<html>
<head>
  <style>
div {margin:3px; width:130px; height:30px; display:none;}
</style>
  <script src="http://code.jquery.com/jquery-1.4.4.js"></script>
</head>
<body>
  <button id="show" onclick="this.style.visibility = 'hidden';">Show</button>
<div><input type="text" size="20"/></div>
<div><input type="text" size="20"/></div>
<div><button id="submit">Submit</button> <button id="cancel">Cancel</button></div> 

<script>
// Sliding Menu Down
$(document.body).click(function () {
if ($("div:first").is(":hidden")) {
$("div").slideDown("slow");
} else {
$("div").hide();
}
}); 

// Sliding Menu UP [Not Working]
$(document.body).click(function () {
if ($("#cancel").is(":hidden")) {
$("div").slideUp("slow");
} else {
$("#cancel").show();
}
});


</script>
</body>
</html>

还没有成功地尝试了一些变体:

 $("cancel").click(function () {
 $(this).parent().slideUp("slow", function () {
 $("#msg").text($("cancel", this).text() + " has completed.");
   });
});

我看过许多相关的问题和解决方案,但我无法弄清楚简单slideUp并在取消时显示Show按钮

2 个答案:

答案 0 :(得分:2)

试试这个:

<html>
<head>
<style>
div.menu {margin:3px; width:130px; height:30px; display:none; }
</style>
<script src="http://code.jquery.com/jquery-1.4.4.js"></script>

<script>
$(document).ready(function(){
    $('#show').click(function(){
        $('#show').slideUp('slow', function(){
            $('.menu').slideDown('slow').removeClass('hidden');
        }).addClass('hidden');
    });

    $('#cancel').click(function(){
        $('.menu').slideUp('slow', function(){
            $('#show').slideDown('slow').removeClass('hidden');
        }).addClass('hidden');
    });
})(jQuery);
</script>
</head>
<body>

<button id="show">Show</button>
<div class="menu hidden"><input type="text" size="20"/></div>
<div class="menu hidden"><input type="text" size="20"/></div>
<div class="menu hidden">
    <button id="submit">Submit</button>
    <button id="cancel">Cancel</button>
</div> 

</body>
</html>

易于使用:

$('#show').click(function(){...});

是单击ID“show”的按钮元素

的功能
$('#show').slideUp('slow', function(){...}).addClass('hidden');

首先使用ID“show”向上滑动Element,然后调用该函数,然后将“隐藏”类添加到ID为“show”的元素中(如果要检查其是否可见)或不)

$('.menu').slideDown('slow', function(){ $(this).removeClass('hidden'); });

使用类“菜单”向下滑动元素,并删除隐藏的类

如果按下“取消”,功能也是如此,只有ID和类不同:)

我希望这可以帮助你......

答案 1 :(得分:1)

从哪里开始。 第一。提供所有DIV ID,以便您可以直接访问它们。 第二。在单词表示“具有此ID的元素”之前引用您想要$('#cancel') "#"的取消按钮a“。”表示“此类别的元素”

您确定要做$("div").slideDown("medium");和类似吗?这意味着对所有DIV元素执行该操作

      <button id="show" style="display:block;">Show</button>
<div class='inputs' style='display:none;'>
    <div><input type="text" size="20"/></div>
    <div><input type="text" size="20"/></div>
    <div><button id="submit" class='formDone'>Submit</button> <button id="cancel"  class='formDone'>Cancel</button></div> 
</div>

<script>
$(document).ready(function(){
  $('#show').live('click',function(){//show the form on request
    $(this).hide();
    $('.inputs').show();
  });
  $('.formDone').live('click',function(){//hide the form on submit of cancel
    //use a AJAX method to submit your form maybe here???
    $('#show').show();
    $('.inputs').hide();
  });

});

</script>