1

我正在尝试编写一个非常简单的向上滑动和滑动功能,在按下按钮后隐藏按钮,但我没有什么 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按钮在取消时可见

4

2 回答 2

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').slideUp('slow', function(){...}).addClass('hidden');

首先将 ID 为“show”的元素向上滑动,然后调用该函数,然后向 ID 为“show”的元素添加一个“隐藏”类(如果您想检查它是否可见)

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

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

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

于 2011-01-25T22:48:29.507 回答
1

从哪儿开始。第一的。提供您所有的 DIV ID,以便您可以直接访问它们。第二。在单词之前引用您想要的取消按钮$('#cancel') 意味着"#"“具有此 ID 的元素”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>
于 2011-01-25T22:36:24.583 回答