我正在尝试根据点击链接的href
属性淡入隐藏元素,但我无法弄清楚如何,我试过这个:
http://jsfiddle.net/vengiss/Zhn2W/
但由于某种原因$(textBlock)
只返回一个空对象。
提前致谢!
答案 0 :(得分:1)
试试这个:
$('a[href="ABC"]').fadeIn();
选择器文档可在http://docs.jquery.com/Selectors
找到对于属性:
=完全相等
!=不相等
^ =以
开头$ =以
结尾* =包含
答案 1 :(得分:1)
您目前使用的代码问题非常简单。用于查找要淡出的div的选择器是:
$(this).find('div')
但在该上下文中this
指的是被点击的元素。只需将该选择器更改为:
$('#text-blocks').find('div')
它应该有用。
编辑:
关于你的包装函数我注意到的其他事情。你错过了最后的开合括号,所以你的代码都没有运行过。或者让它在文档就绪上运行,你可以在代码的最开头添加jQuery(或$
)。
答案 2 :(得分:1)
您正在使用this
(指向单击的锚点)而不是目标元素来查找文本块。请尝试使用#text-blocks > div
选择器:
// Fade out any visible text blocks
$('#text-blocks > div').fadeOut('normal', function() {
// Fade in selected text block
$(textBlock).fadeIn();
});
修改强>
此外,您可能希望避免填入和退出已选择的元素,在这种情况下使用.not()
:
// Fade out any visible text blocks
$('#text-blocks > div').not(textBlock).fadeOut('normal', function() {
// Fade in selected text block
$(textBlock).fadeIn();
});
这是此版本的working jsfiddle。
答案 3 :(得分:1)
问题是您忘记在jQuery ready调用中添加第一个$
。这是您需要的JavaScript:
$(function(){
$('#links a').on('click', function(e) {
e.preventDefault();
// Fade out any visible text blocks
$('#text-blocks div').fadeOut();
// Fade in required one
$($(this).attr('href')).fadeIn();
});
});
jsFiddle是here。