jQuery-当display:none时,Div的过滤不为:hidden;作为样式附加

前端之家收集整理的这篇文章主要介绍了jQuery-当display:none时,Div的过滤不为:hidden;作为样式附加 前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一些简单的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(即可见的cookie). cookie的存储不是问题.

问题是我由于某种原因无法使用.is(“:hidden”)检测到哪个是隐藏对象,也无法使用.is(“:visible”)检测到哪个是可见对象.

当我使用这两个选择器时,总是会得到两个选择器.两者都显示为“ true”和“ true”,尽管其中一个显示:另一个没有.请注意,它们没有放置在隐藏的容器内,否则会隐藏两者,因此没有任何隐藏的祖先容器.

谁能解释为什么会这样?

jQuery代码包含获取ID和获取所选ID(目前已损坏)的源:

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;
},

提前致谢.

最佳答案
我只用上面的html运行了以下代码,它运行良好:

<script type="text/javascript">
testobj = {
getChainedSelectorId: function() {
    return "#chainedSelector";
},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>

部分视图中呈现了什么?

猜你在找的CSS相关文章