无法在JavaScript函数中更改div颜色
我已经编写了这个JavaScript文件(使用jQuery): 我想要使之不可见的无法在JavaScript函数中更改div颜色,javascript,jquery,css,sass,Javascript,Jquery,Css,Sass,我已经编写了这个JavaScript文件(使用jQuery): 我想要使之不可见的div(通过将颜色更改为透明)永远不会将颜色更改为透明。我曾尝试将attr(“数据可见”,“0”)更改为css(“颜色”,“透明”),但也没有效果只有当我单击具有[data action=open]的a时,才会发生这种情况。我的HTML在这里: <a class="category_header" data-target="websites" data-action="open" href="#side_na
div
(通过将颜色更改为透明)永远不会将颜色更改为透明。我曾尝试将attr(“数据可见”,“0”)
更改为css(“颜色”,“透明”)
,但也没有效果只有当我单击具有[data action=open]
的a
时,才会发生这种情况。我的HTML在这里:
<a class="category_header" data-target="websites" data-action="open" href="#side_nav">Websites</a>
<a href="#side_nav" data-target="websites" data-action="close" data-visible="0">✕</a>
感谢您的帮助
我用我的代码制作了一个同样不起作用的JSFIDLE:X在单击之前不会消失。如果要隐藏元素,为什么不使用:
$("[data-action=close][data-target="+$category+"]").css('display', 'none');
或
将您的功能更改为:
function hide_category($var) {
var $category = (typeof $var == 'string') ? $var : $(this).data("target");
$("#" + $category).hide(250, function() {
$("[data-action=close][data-target=" + $category + "]").attr("data-visible", "0");
});
}
这里:如果我是正确的,
data('anythis')
不返回值,请尝试attr(“data anythis”)
,如果我不正确,请道歉。当我运行var$category=$(this).data(“target”);警报(类别)代码>将显示一个包含正确数据的警报,因此我认为它是有效的。@Xero值将返回.data()并尝试转换该值,而.attr()只是一个简单的字符串。@user2491647是否尝试了不透明度?大概Help@WilfredoP,请查看我的JSFIDDLE。如果我将其隐藏,则会出现空白。我的a
标记设置为display:inline block
,因此我只希望颜色透明。但是,如果这正是我想要实现的目标,那么这就行了……如果你想让它不可见,但它仍然会占用空间,那么试试css('opacity',0)
?或者这不是您想要的吗?@llprudent,请查看我的JSFIDDLE。或者,如果您使用大小设置外部内容,您可以隐藏元素而不留空格(:谢谢!但为什么此函数有效而我的上述函数无效?顺序为.hide()。您需要先隐藏,然后更改属性。
$("[data-action=close][data-target="+$category+"]").css('display', 'none');
$("[data-action=close][data-target="+$category+"]").hide();
function hide_category($var) {
var $category = (typeof $var == 'string') ? $var : $(this).data("target");
$("#" + $category).hide(250, function() {
$("[data-action=close][data-target=" + $category + "]").attr("data-visible", "0");
});
}