我想基於一個被點擊鏈接的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