1

我想知道如何将整个 div 动画到页面顶部,现在看起来很简单,但即使经过大量研究,我也无法弄清楚我做错了什么,它根本行不通所以这是我的代码:

<script type="text/javascript" src="jquery.min.js"></script>
<script>
$(document).ready(function()
{
    $('#q').bind('webkitspeechchange',function()
    {
        $(this).parent('form').submit();
    });
});
function check()
{
    var searchtext = document.getElementById("q").value;
    if(searchtext=='')
    {
        return false;
    }
    else
    {
        return true; 
    }
}
$( document ).ready(function() {
  $("#q").focus();
});



$("#button").click( function() {             
    $("#content").animate({
        top: 0
    },1000)
});



</script>

我正在尝试将#content 动画到顶部,以供参考,这是完整页面:http ://dev.thiv.net/

我真的被困住了,任何帮助将不胜感激!谢谢

4

1 回答 1

1

您的脚本出现在相关元素之前。您需要将其封装在DOM Ready Handler中才能正确绑定事件

<script> 
    $(document).ready(function () {
        $('#q').bind('webkitspeechchange', function () {
            $(this).parent('form').submit();
        });

        $("#q").focus();
        $("#button").click(function () {
            $("#content").animate({
                top: 0
            }, 1000)
        }); 
    });

    function check() {
        var searchtext = document.getElementById("q").value;
        if (searchtext == '') {
            return false;
        } else {
            return true;
        }
    }
</script>

您还可以将所有代码封装在单个ready处理程序中,而不是将其放置在多个实例下。此外,最好将脚本标记放在正文的结束标记之前以获得更好的性能。

并且看起来您的按钮在表单内。因此,如果您希望表单正常工作,您需要阻止表单的默认操作。删除表单的onsubmit事件并使用 jQuery 提交表单。

$("#button").click(function (e) {
     e.preventDefault();
     $("#content").animate({
        top: 0
     }, 1000);

    var check = check();
    if(check) {
       $('form').submit();
    }
}); 
于 2013-08-04T09:23:22.203 回答