我想通过 jquery 的css()
函数改变元素的可见性,但它不起作用。有趣的是,相同的语法在我网站的其他地方也可以使用,我什至可以在同一行代码中更改 CSS 参数和值,它会起作用。但它不适用于可见性。
我的查询:
$('.promo_container').each(function(promoIndex){
var $_this = $(this);
$_this.css({'visibility':'visible'});
console.log($_this); //This is the correct output ie. the right element
});
令人困惑的是我在另一个 js 文件中使用了这种语法并且它可以工作。让我大吃一惊的是,如果我改变这条线......
$_this.css({'visibility':'visible'});
……到这……
$_this.css({'background':'red'});
...有用!!我在 chrome 中打开我的开发者控制台,我可以看到背景颜色的动态设置样式。当我切换回更改可见性时,我的控制台中没有动态设置的样式;它显示visibility
为hidden
没有覆盖它。但它应该被覆盖,不是吗?
编辑
请记住,问题不是我看不到我的元素,而是动态应用的样式在我的开发人员控制台中没有显示任何内容。此外,如果我visibility:hidden
在控制台中取消选中参数,则元素会显示,所以这是唯一隐藏元素的东西。
我刚刚试过这个:
$_this.show();
它不工作。该元素保持隐藏状态。我知道我没有针对错误的元素,因为再一次,如果我在不更改选择器的情况下更改 CSS,它可以正常工作;唯一的问题是 CSS 设置可见性时。
的CSS $_this
:
overflow:hidden;
visibility:hidden;
position:relative;
height:100%;
HTML 应该不是问题......但这是我的元素的标记:
<div class="promo_container" data-random="{if $controller->startOn == 1}random{/if}">
...
//That is Smarty syntax inside the element above,
it is working fine and should not be affecting anything
</div>
编辑 2
这是一个错字。我有visibile
而不是visible
. :D