我是jQuery的新手,我覺得我錯過了一些非常明顯和基本的東西,但我不能完全包裹它。傳遞一個參數的函數來懸停在jQuery
在我有一些代碼當對象被懸停在將動畫筆劃寬度更寬的量和它的工作的任何情況下:
$(function() {
$("#wheel1").hover(grow1, shrink1);
});
function grow1(evt) {
$("#wheel1").animate({'stroke-width':'100'},300);
$("#circle1container").css({'display':'block'});
$("#circle1container").animate({'opacity':'1'},300);
}
function shrink1(evt) {
$("#wheel1").animate({'stroke-width':'55'},300);
$("#circle1container").animate({'opacity':'0'},300);
}
但是我有其他10個對象,我也想爲做到這一點,因此而不是複製和粘貼此9次以上,並改變數的9倍,我試圖鞏固它,這並不工作:
$(function() {
$("#wheel1").hover(grow("1"), shrink("1"));
$("#wheel2").hover(grow("2"), shrink("2"));
$("#wheel3").hover(grow("3"), shrink("3"));
$("#wheel4").hover(grow("4"), shrink("4"));
$("#wheel5").hover(grow("5"), shrink("5"));
$("#wheel6").hover(grow("6"), shrink("6"));
$("#wheel7").hover(grow("7"), shrink("7"));
$("#wheel8").hover(grow("8"), shrink("8"));
$("#wheel9").hover(grow("9"), shrink("9"));
$("#wheel10").hover(grow("10"), shrink("10"));
function grow(number) {
var name = "#wheel" + number;
$("#wheel" + number).animate({'stroke-width':'100'},300);
$("#circle" + number + "container").css({'display':'block'});
$("#circle" + number + "container").animate({'opacity':'1'},300);
}
function shrink(number) {
$("#wheel" + number).animate({'stroke-width':'55'},300);
$("#circle" + number + "container").animate({'opacity':'0'},300);
}
});
可能仍然不是最有效的方式,但少一點冗長,更容易改變我的想法。我只是不確定交易是在這裏。歡迎任何幫助,謝謝!
http://jsfiddle.net/F4Yjj/5/這顯示了我嘗試在懸停時爲懸停工作的綠色形狀(此消息中的代碼的第一位)懸停的對象。
啊,這是有道理謝謝!雖然如果我想在每個部分的環的中間出現一個不同的對象,這是否仍然是解決這個問題的方法? – Quintin 2013-04-24 19:31:00
這取決於您想要顯示的內容。它會像一個標籤或東西一樣顯示在同一個地方,但文本內容會發生變化嗎? – showdev 2013-04-24 19:34:40
我編輯了jsfiddle和我的文章,以說明我在想什麼。應該現在就住。 – Quintin 2013-04-24 19:36:47