[英]How can I use $(this) in JQuery to animate these images?
我有三個縮略圖。 當用戶將鼠標移到它們上面時,我不會將它們從部分不透明褪色到完全不透明,而當他們的鼠標不再位於它們上面時,我將再次使其褪色。 我的代碼工作正常,但是為每個圖像重新鍵入所有這些代碼似乎很多余。 我如何才能更有效地做到這一點? 似乎可以使用$(this),但到目前為止還沒有。 我想念什么?
function imgFade()
{
$('#cluster').fadeTo(0,.3);
$('#launch').fadeTo(0,.3);
$('#gas').fadeTo(0,.3);
}
$(document).ready(function () {
$("#cluster").mouseover(function () {
$("#cluster").fadeTo("slow", 1, function () {
});
});
$("#cluster").mouseout(function () {
$("#cluster").fadeTo("slow", .3, function () {
});
});
});
;
您的代碼可以通過以下方式完全重寫和縮短:
function imgFade() {
$('#cluster, #launch, #gas').fadeTo(0, .3);
}
$(document).ready(function () {
$("#cluster")
.mouseover(function () {
$(this).fadeTo("slow", 1);
})
.mouseout(function () {
$(this).fadeTo("slow", .3);
});
});
只需使用選擇器即可選擇所有三個元素:
$(document).ready(function () {
$("#cluster, #launch, #gas").fadeTo(0, .3).mouseover(function () {
$(this).fadeTo("slow", 1);
}).mouseout(function () {
$(this).fadeTo("slow", .3);
});
});
...然后在處理程序中this
將引用當前元素。
請注意,您可以鏈接.mouseover().mouseout()
函數,而不用通過分別調用$("#cluster, #launch, #gas")
來重新選擇元素。
如果您給所有相似的元素都提供一個通用類,然后再通過以下方式進行選擇,則可能不是很整齊,而是選擇它們: $(".someClass").mouseover(...
還要注意,沒有必要為.mouseover()
提供一個空的回調函數-如果您不想在淡入淡出時完成任何操作,則可以忽略最后一個參數。
這應該工作...
function imgFade()
{
$('#cluster, #launch, #gas').fadeTo(0,.3);
}
$(document).ready(function () {
$("#cluster, #launch, #gas").mouseover(function () {
$(this).fadeTo("slow", 1, function () {
});
});
$("#cluster, #launch, #gas").mouseout(function () {
$(this).fadeTo("slow", .3, function () {
});
});
});
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.