display:none更改显示:内联自身?

时间:2012-09-05 01:00:10

标签: javascript jquery css show-hide

我使用jQuery 1.7.2和UI 1.8.21以及标签插件。

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

它在第一个选项卡上正常工作,但第二个和第三个选项卡没有。我使用相同的功能来打开/关闭跨度。

我无法在jsfiddle上重现此问题。它运作正常。

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块。这适用于'branch'代码库。所以我开始用'trunk'代码库调试它。

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');没有任何帮助。我尝试使用带有相同结果的标签的应用程序。

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

<span class="" id="trunk_svn_user">svn user:<span id="trunk_svn_user_value"></span></span>';

1 个答案:

答案 0 :(得分:1)

我的猜测是其他if块之一可能会干扰 - 如果你注释掉其他案例,它会起作用吗?

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

以下是一个例子:

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'));
    }
}