Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/407.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在JavaScript函数中更改div颜色_Javascript_Jquery_Css_Sass - Fatal编程技术网

无法在JavaScript函数中更改div颜色

无法在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

我已经编写了这个JavaScript文件(使用jQuery):

我想要使之不可见的
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");
    });
}