这让我发疯了......我有一个 javascript 函数,它可以切换我使用 HTML5 技术传入的元素的可见性。我想交换触发锚元素内的 img 标签显示的图像,使其与展开或折叠元素的状态相对应。
我正在使用以下代码:
$('a.expand-collapse').click(function () {
var targetID = $(this).attr('data-expcoltarget');
var target = $('div#' + targetID);
debugger;
target.toggle('blind');
if (target.is(':visible')) imgSrc = contentRoot + 'images/collapse.gif';
else imgSrc = contentRoot + 'images/expand.gif';
$(this).find('img').first().attr('src', imgSrc);
});
不幸的是,无论目标元素的可见性状态如何, target.is(':visible') >>always<< 返回 true。
我错过了什么?
编辑:
感谢您愿意查看标记,但事实证明没有必要找到解决方案。
至于 'data-expcoltarget' 是什么,这是一种 HTML5 技术,用于为元素分配任意值。任何带有后缀 data- 的东西都会被解析器忽略。
在这种情况下,我使用该技术将相当于参数的内容传递给 javascript 函数。之所以有效,是因为 $(this) 指向触发事件的元素,因此我可以检查其属性以查找参数。