2012-09-05 31 views
0

我用标签插件使用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(); 
    } 
} 

如果其他两个选项卡有两个以上的块,这适用于'分支'代码库。所以我开始用'trunk'代码库进行调试。

toggle_svn_user()函数在$(document).ready(function(){块中运行。我还添加了按钮以随时触发该功能。这给了我相同的结果。奇怪的是,console.log()显示display: none;,但是当我使用萤火虫来查看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

我的猜测是,其他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')); 
    } 
} 
+0

你说得对我的结构,如果块是不正确的。如果你这样做,我必须使用两个。谢谢。 – Radek