【发布时间】:2012-04-15 01:43:57
【问题描述】:
我正在尝试根据点击链接的href 属性淡入隐藏元素,但我不知道如何,我尝试了这个:
http://jsfiddle.net/vengiss/Zhn2W/
但由于某种原因,$(textBlock) 只返回一个空对象。
提前致谢!
【问题讨论】:
我正在尝试根据点击链接的href 属性淡入隐藏元素,但我不知道如何,我尝试了这个:
http://jsfiddle.net/vengiss/Zhn2W/
但由于某种原因,$(textBlock) 只返回一个空对象。
提前致谢!
【问题讨论】:
您正在使用this(指单击的锚点)而不是预期的元素来查找文本块。尝试改用#text-blocks > div 选择器:
// Fade out any visible text blocks
$('#text-blocks > div').fadeOut('normal', function() {
// Fade in selected text block
$(textBlock).fadeIn();
});
这是它的working jsfiddle。
编辑:
此外,您可能希望避免淡入淡出已选择的元素,在这种情况下使用.not():
// Fade out any visible text blocks
$('#text-blocks > div').not(textBlock).fadeOut('normal', function() {
// Fade in selected text block
$(textBlock).fadeIn();
});
这是此版本的working jsfiddle。
【讨论】:
试试这个:
$('a[href="ABC"]').fadeIn();
选择器文档可以在http://docs.jquery.com/Selectors找到
对于属性:
= 完全相等
!= 不等于
^= 以
开头$= 以
结尾*= 是包含
【讨论】:
#text1 的链接,我想淡入 ID 为 text1 的 div。由于 href 已经包含 # 符号,我想我可以将它传递给 jQuery 函数来选择它:(
您当前使用的代码的问题非常简单。您用来查找要淡出的 div 的选择器是:
$(this).find('div')
但在这种情况下,this 指的是被点击的元素。只需将该选择器更改为:
$('#text-blocks').find('div')
它应该可以工作。
编辑:
关于您的包装器功能,我注意到了其他一些事情。您错过了末尾的开闭括号,因此您的任何代码都不会运行。或者,要让它在准备好的文档上运行,您可以在代码的开头添加 jQuery(或 $)。
【讨论】:
问题是您忘记在 jQuery 就绪调用中添加第一个 $。这是您需要的 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。
【讨论】: