首页 新闻 会员 周边

$('.hidden').removeClass("hidden").addClass("visible")不能如预想的工作

0
悬赏园豆:10 [已解决问题] 解决于 2016-04-21 17:20

function switchView() {
    $('.hidden').removeClass("hidden").addClass("visible");
    $('.visible').removeClass("visible").addClass("hidden");
}

使用上面的JS语句来切换DIV的显示,但是页面并没有实际显示出来,但是使用下面的语句的话,就可以正常显示,这是为什么?感觉好奇怪

 

function switchView() {
    var hidden = $('.hidden');
    var visible = $('.visible');
    hidden.removeClass("hidden").addClass("visible");
    visible.removeClass("visible").addClass("hidden");
}

JustYong的主页 JustYong | 初学一级 | 园豆:7
提问于:2016-04-21 10:46
< >
分享
最佳答案
1

$('.hidden').removeClass("hidden").addClass("visible");
    $('.visible').removeClass("visible").addClass("hidden");

这里第二步把刚才显示的又搞隐藏了。。。所以你懂得。。

收获园豆:10
waiter | 小虾三级 |园豆:1000 | 2016-04-21 15:48

你说到点子上了

JustYong | 园豆:7 (初学一级) | 2016-04-21 17:20
其他回答(3)
0

$('.hidden').removeClass('hidden')之后DOM对象就丢失了自然无法addClass。而你用var hidden=时,自身拿到的其实就是div的地址了,remove add操作都不会丢失DOM对象。仅个人见解,欢迎评论

natureless | 园豆:11 (初学一级) | 2016-04-21 11:03

删除的是class,为什么DOM对象会丢失呢,能解释一下么

支持(0) 反对(0) JustYong | 园豆:7 (初学一级) | 2016-04-21 12:24
0

function switchView() {
    $('.hidden').addClass("visible").removeClass("hidden");

    $('.visible').addClass("hidden").removeClass("visible");

}

这样写估计就可以了

先添加,后修改

不然你先删除了,后面就找不到jquery对象了

刘宏玺 | 园豆:14020 (专家六级) | 2016-04-21 11:11
0

你看控制台下看下该元素具体的class到底是怎么变化的。

幻天芒 | 园豆:37175 (高人七级) | 2016-04-21 15:35
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册