2012-07-21 51 views
0

首先我是編碼的開頭,所以請耐心等待。我在一個頁面上有幾個圖像,形成了一個導航欄,將會動畫。我正試圖根據哪些元素被蒙上陰影來移動元素。所有的圖像都有唯一的ID並共用通用名稱,即主頁圖標的名稱是「home」和「homeShad」。這個想法是當你將鼠標放在家中時,homeShad將會移動,並且正如我有幾個鏈接一樣,試圖減少我的代碼。這導致我在這裏,什麼我嘗試做jquery這個連接

$.reset = function() { 
$(this + 'Shad').animate({ 
    left: '+=100'}, 300) 

$('#home').mouseenter(function() { 
    $.reset 
    }) 

這並不工作,所以我想這

$.reset = function() { 
$('#'+ $(this).attr("id")+" shad").animate({ 
    left: '+=100'}, 300) 

和仍然沒有喜悅。

('#home').click(function() { 
    alert('#'+ this.id + 'shad') 
}) 

這個設法得到警報,以示「#homeShad」我是什麼即時尋找,當我試圖製作動畫沒有喜悅

hopeing一些人可以幫助和抱歉,如果我做了在這裏發佈任何錯誤

+1

每個這三個片段都充滿語法錯誤的。你可以發佈HTML嗎? – JJJ 2012-07-21 11:41:45

回答

1

看看這個小提琴:http://jsfiddle.net/eVDe3/

希望這回答你的問題! 您的代碼應該是:

$('#home').click(function() { 
    $('#'+this.id+'Shad').animate({ 
     left: '+=100' 
    },300); 
}); 

編輯:如果你想通過一個函數來調用它,你必須通過$(this).id。這裏選中此更新小提琴:http://jsfiddle.net/eVDe3/1/ 下面是相應的代碼:

function reset(id) { 
    $('#'+id+'Shad').animate({ 
     left: '+=100' 
    },300); 
} 
$('#home').click(function() { 
    reset($(this).attr('id')); 
}); 
+0

@jaggysnake這是因爲'$(this)'沒有在函數 – gopi1410 2012-07-21 12:14:38

+0

中定義有沒有辦法讓這個在函數中工作 – jaggysnake 2012-07-21 12:15:20

+0

@jaggysnake檢查我更新的答案 – gopi1410 2012-07-21 12:18:17

0

我看到你已經爲圖標設置了「homeShad」ID,但是你在提到的點上使用了「shad」。 我不知道你是意識到與否,但ID和班級是大小寫敏感的,所以 你應該寫象下面這樣:

$.reset = function() { 
$('#'+ $(this).attr("id")+" Shad").animate({ 
    left: '+=100'}, 300) 
};