1

以下是将隐藏的所需跨度

<span class="lastSave" name="lastSave">Last Saved by <i name="lastSavedBy"></i> at <i name="lastSaved"></i> </span>

页面下方有一个表格。

以下是在某些事件中调用的 javascript 中的相关函数。请注意,这会使桌子向上移动。

function hideLastSaved(form){
    jQuery(' [name="lastSave"]').hide();
}

function showLastSaved(form){
    jQuery(' [name="lastSave"]').show();
}

代替 javascript 中的上述代码段,我尝试了以下方法。这不会使桌子向上移动。但是这个有某种淡出,这在我的应用程序中是不需要的。

function hideLastSaved(form){
    jQuery(' [name="lastSave"]').animate({opacity:0});
}

function showLastSaved(form){
    jQuery(' [name="lastSave"]').animate({opacity:100});
}
4

7 回答 7

6

好吧,我希望其他所有内容都保持原样,所以.hide()jQuery 中的 不起作用,因为这相当于在 CSS 中添加以下类

.hide{
display: none
}

此外,我不想要任何形式的动画,因此将.animate()不透明度从 0 更改为 1 并不是我想要的。我已经尝试过了,我可以看到元素淡出。我希望它立即消失,而页面中的所有其他人都不会移动。

我决定使用 .css(propertyName, value)

function hideLastSaved(form){
    jQuery(' [name="lastSave"]').css('visibility','hidden');
}

function showLastSaved(form){
    jQuery(' [name="lastSave"]').css('visibility','visible');
}

这是添加这样一个类的更短的方法:

.hider{
visibility: hidden
}

到元素使用

function hideLastSaved(form){
    $(' [name="lastSave"]').addClass('hider');
}

function showLastSaved(form){
    $(' [name="lastSave"]').removeClass('hider');
}

类似于 Jamie Dixon 的建议。

我还没有尝试过 Nightw0rk 的建议:

function hideLastSaved(){
    jQuery(' [name="lastSave"]').css('opacity','0');
}

function showLastSaved(){
    jQuery(' [name="lastSave"]').css('opacity','1');
}

但会尝试一下,这样我就知道它的样子了。

非常感谢大家的精彩建议!

于 2011-08-22T01:29:52.890 回答
2

hide 方法display将元素的属性更改为none

如果要在隐藏元素时保持元素位置,请添加一个设置visibilityhidden.

CSS:

.hider{
   visibility:hidden;
}

JS

function hideLastSaved(form){
    $(' [name="lastSave"]').addClass('hider');
}

function showLastSaved(form){
    $(' [name="lastSave"]').removeClass('hider');
}

这是一个非常基本的演示:http: //jsfiddle.net/dWw7F/

于 2011-08-19T10:42:04.633 回答
2

尝试更改 css 可见属性。

于 2011-08-19T10:43:06.730 回答
0
function hideLastSaved(){
    jQuery(' [name="lastSave"]').css('opacity','0');
}

function showLastSaved(){
    jQuery(' [name="lastSave"]').css('opacity','1');
}
于 2011-08-19T10:47:31.960 回答
0

使用以下代码更改 的可见性span

$('#uniqueSpanId').animate({opacity: 0.0});

这会将跨度的不透明度更改uniqueSpanId为 0,使其不可见。将其更改回来很简单,只需执行相反的命令:

$('#uniqueSpanId').animate({opacity: 1.0});
于 2011-08-19T10:47:50.430 回答
0

如果您使用的是旧版本的 JQuery,请使用以下内容:

function hideLastSaved(form){
jQuery(' [name="lastSave"]').fadeOut(1);
}

function showLastSaved(form){
jQuery(' [name="lastSave"]').fadeIn(1);
}

“1”只是设置了 1 毫秒的时间刻度,这在技术上没什么,如果您使用的是较新版本的 JQuery,那么只需添加 $ 而不是 JQuery:

function hideLastSaved(form){
$('[name="lastSave"]').fadeOut(1);
}

function showLastSaved(form){
$('[name="lastSave"]').fadeIn(1);
}
于 2014-01-09T21:04:09.107 回答
0

另一种方式:

function hideLastSaved(form){
    jQuery(' [name="lastSave"]').css('display','none');
}

function showLastSaved(form){
    jQuery(' [name="lastSave"]').css('display','block');
}

jQuery hide()= 设置display: noneand visibility: hidden, 有一个转换

jQuery show()= 设置display: blockand visibility: visible, 有一个转换

于 2011-08-19T10:52:29.463 回答