我使用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>';
答案 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'));
}
}