首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >display: none更改为display: inline by itself?

display: none更改为display: inline by itself?
EN

Stack Overflow用户
提问于 2012-09-05 09:00:10
回答 1查看 225关注 0票数 0

我使用带有tabs插件的jQuery 1.7.2和UI 1.8.21。

我有三个标签,每个标签都有一个带有跨度的表格,我想根据一些javascript变量的值来隐藏/显示。

在第一个选项卡上可以正常工作,但第二个和第三个选项卡就不行了。我使用相同的函数来打开/关闭跨度。

我不能在jsfiddle上重现这个问题。它工作正常。

代码语言:javascript
复制
function toggle_svn_user(codebase){

    if (codebase=="trunk" && user==trunk_svn_user){
        $('#'+codebase+"_svn_user").hide();
        $('#'+codebase+"_svn_relocate_cmd").hide();

        //$('#'+codebase+"_svn_user").css('display', 'none');
        console.log("hide "+codebase);
        console.log($('#'+codebase+"_svn_relocate_cmd").attr('style'));
    }else{
        $('#'+codebase+"_svn_user").show();
        $('#'+codebase+"_svn_relocate_cmd").show();
    }
 }

另外两个选项卡还有两个if块。这适用于“分支”代码库。所以我开始用“主干”代码库来调试它。

toggle_svn_user()函数在$(document).ready(function(){块中运行。我还添加了按钮来随时触发函数。这给了我相同的结果。奇怪的是,console.log()显示display: none;,但当我使用firebug查看html时,我可以看到display: inline;。我可以点击按钮,但console.log和html不匹配。

我试着使用jQuery的.hide(),.css('display', 'none');.css('display', 'none !important');也没有帮助。我尝试将我的应用程序与选项卡一起使用,结果也是一样的。

你知道怎么解决这个问题吗?或者如何显示/隐藏跨度?

代码语言:javascript
复制
<span class="" id="trunk_svn_user">svn user:<span id="trunk_svn_user_value"></span></span>';
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-05 10:09:30

我的猜测是,其他if块中的一个可能正在干扰-如果您注释掉其他情况,它会起作用吗?

另外,您可以使用jQuery的toggle方法来简化代码。请参阅本页上的第三个用法.toggle( showOrHide )http://api.jquery.com/toggle/

下面是一个示例:

代码语言:javascript
复制
function toggle_svn_user(codebase){

    if (codebase=="trunk"){
        var showUser = (user == trunk_svn_user)

        $('#'+codebase+"_svn_user").toggle(showUser);
        $('#'+codebase+"_svn_relocate_cmd").toggle(showUser);

        console.log($('#'+codebase+"_svn_relocate_cmd").attr('style'));
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12273226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档