JS脚本导致很少的转变,我该如何防止呢?

时间:2013-05-03 00:40:28

标签: jquery html css

我有一些表单,如果验证失败,Jquery会在它前面添加错误消息。 当用户再次点击表单时,错误就会消失,这就是问题:错误淡出会导致表单向上移动一点点。 不是这个大问题,但每次看到它都会让我很烦。尝试通过玩CSS并设置不同的margin-top等来解决问题,没有任何帮助。 谢谢你的建议。

Jquery的:

$('body').delegate("input#email",'focus',function(){
        $('#errors_of_sign').remove();});

$('body').delegate("input#password",'focus',function(){
        $('#errors_of_sign').remove();});

CSS:

.sign_in {
    display: none;
    position: fixed;
    top: 30%;
    left: 28%;
    border-style: solid;
    border-width: 3px;
    border-color: #c1ffc6;
    background: #fff;
    padding: 2%;
    width: 40%;
    height: 25%;
    font-family: Arial, sans-serif;
    z-index: 9999999;
    font-size: 14px;


}
.signs_form{

    font-family: Arial,Liberation Sans,DejaVu Sans,sans-serif;
    display: inline-block;
    border-right-style: solid;
    padding-right: 10%;
    border-width: 1px;
    border-color: #c1ffc6;


}
.fb_sign {

    display: inline-block;
    vertical-align: 100%;
    margin-left: 10%;


}
#sign_in_fb {
    vertical-align: 100%;

}

1 个答案:

答案 0 :(得分:1)

发生的事情是,当你从DOM中删除它时,它显然不再占用空间。所以只需将其隐藏起来:

$('body').delegate("input#email",'focus',function(){
    $('#errors_of_sign').css('visibility','hidden');
})

$('body').delegate("input#password",'focus',function(){
    $('#errors_of_sign').css('visibility','hidden');
})

修改 如果你的jquery版本是1.7或更高版本,你也应该使用“on”代替“delegate”