我有一些简单的HTML:
<div id="selectorContainer">
<div id="chainedSelector" style="display: none;"><% Html.RenderPartial("ProjectSuggest/ChainedProjectSelector"); %></div>
<div id="suggestSelector"><% Html.RenderPartial("ProjectSuggest/SuggestControl", new SuggestModeDTO{RegistrationMode = Model.RegistrationMode}); %></div>
</div>
这是两个控件容器。我有jQuery代码在显示这些之间进行切换,但是我需要存储为上次用户登录时使用的cookie(即哪一个是可见的)。存储cookie不是问题。
问题在于,由于某些原因,我无法使用.is(“:hidden”)检测哪一个是隐藏的,并且无法使用.is检测哪一个是可见的(“:visible” )
当我使用这两个选择器时,我总是得到两个选择器。两个人都有“真实”和“真实”,尽管有人显示:无;而另一个没有。请注意,它们不会放在隐藏的容器内,否则会隐藏它们,因此没有任何隐藏的祖先容器。
任何人都可以解释为什么会发生这种情况吗?
包含获取Id和获取所选ID(目前已损坏)的源代码的jQuery代码:
getChainedSelectorId: function() {
return "#chainedSelector";
},
getSuggestSelectorId: function() {
return "#suggestSelector";
},
getSelectedSelector: function() {
alert($(this.getChainedSelectorId()).is(":hidden"));
alert($(this.getSuggestSelectorId()).is(":hidden"));
var selected = ($(this.getChainedSelectorId()).is(":visible") ? this.getChainedSelectorId() : this.getSuggestSelectorId());
alert(selected);
return selected;
},
提前致谢。
答案 0 :(得分:3)
我刚刚用上面的html运行了以下代码,它运行正常:
<script type="text/javascript">
testobj = {
getChainedSelectorId: function() {
return "#chainedSelector";
},
getSuggestSelectorId: function() {
return "#suggestSelector";
},
getSelectedSelector: function(){
alert($(this.getChainedSelectorId()).is(":hidden"));
alert($(this.getSuggestSelectorId()).is(":hidden"));
var selected = ($(this.getChainedSelectorId()).is(":visible") ? this.getChainedSelectorId() : this.getSuggestSelectorId());
alert(selected);
return selected;
}
}
$(function() {
testobj.getSelectedSelector();
});
</script>
在部分视图中渲染了什么?
答案 1 :(得分:0)
:hidden
用于CSS属性visibility:hidden
我想......