我使用带有tabs插件的jQuery 1.7.2和UI 1.8.21。
我有三个标签,每个标签都有一个带有跨度的表格,我想根据一些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块。这适用于“分支”代码库。所以我开始用“主干”代码库来调试它。
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>';发布于 2012-09-05 10:09:30
我的猜测是,其他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'));
}
}https://stackoverflow.com/questions/12273226
复制相似问题