【发布时间】:2014-09-07 15:59:42
【问题描述】:
我已经编写了这个 JavaScript 文件(使用 jQuery):
$(document).ready(function() {
$("[data-action=open]").click(show_category);
$("[data-action=close]").click(hide_category);
});
function show_category() {
var $category = $(this).data("target");
if ($("#"+$category).is(":visible")) {
hide_category($category);
} else {
$("#"+$category).show(250);
}
$("[data-action=close][data-target="+$category+"]").attr("data-visible", "1");
}
function hide_category($var) {
if (typeof $var == 'string') {
var $category = $var;
$("[data-action=close][data-target="+$category+"]").attr("data-visible", "0");
} else {
var $category = $(this).data("target");
$(this).attr("data-visible", "0");
}
$("#"+$category).hide(250);
}
我想让div 不可见(通过将颜色更改为透明)永远不会将颜色更改为透明。我尝试将attr("data-visible", "0") 更改为css("color", "transparent"),但这也没有效果。 只有当我单击具有[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>
我正在尝试这样做,以便我可以单击相同的a 来隐藏和显示,但也可以选择单击✕。
最后,我尝试将其更改为 css("background", "blue") 只是为了进行测试,并且成功了。这是相对的 SCSS:
&[data-action="close"] {
width: 20px;
height: 30px;
background-color: #111;
text-align: center;
border-bottom: 1px solid #aaa;
color: transparent;
&[data-visible="1"] {
color: $#fafafa;
}
}
感谢任何帮助!
我使用我的代码制作了一个也不起作用的 jsFiddle:http://jsfiddle.net/RmeSJ/ X 在单击之前不会消失..
【问题讨论】:
-
如果我是正确的,
data('anything')不会返回值,请尝试attr("data-anything"),如果我不正确,请见谅。 -
当我运行
var $category = $(this).data("target"); alert($category);时,会出现带有正确数据的警报,所以我认为它有效。 -
@Xero 该值将返回 .data() 并尝试转换该值, .attr() 只是一个简单的字符串。
-
@user2491647 你试过不透明度吗?也许帮助
-
@WilfredoP,请看我的 jsFiddle
标签: javascript jquery css sass