我想基于一个被点击链接的href
属性的隐藏元素褪色,但我无法弄清楚如何,我想这一点:如何使用jQuery根据链接的href获取元素ID?
http://jsfiddle.net/vengiss/Zhn2W/
但由于某些原因$(textBlock)
只是返回一个空的物体。
在此先感谢!
我想基于一个被点击链接的href
属性的隐藏元素褪色,但我无法弄清楚如何,我想这一点:如何使用jQuery根据链接的href获取元素ID?
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()
fadding:
// 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
中找到属性:
=正好等于
=不等于
^=是始于
$ =是
结束* =是包含
不是真的试图淡入链接,但div,例如。如果我点击链接href'#text1'我想淡入id为'text1'的div。由于href已经包含了'#'符号,所以我想我可以将它传递给jQuery函数来选择它:( – javiervd 2012-03-31 19:15:43
与您当前正在使用的代码的问题是非常简单的。你用找到的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。
伟大的解决了这个问题,谢谢,现在我必须弄清楚为什么div有时会两次真的很快消失,任何想法?我更新了你的小提琴,以更好地反映我实际上如何使用它http://jsfiddle.net/vengiss/Zhn2W/13/ – javiervd 2012-03-31 19:22:20
@ javiervd,我正在编辑反映;) – Alexander 2012-03-31 19:25:51
完美的感谢! :) – javiervd 2012-03-31 19:34:02