2013-04-27 13 views
5

Mam trochę kodu, który sprawia, że ​​kolor tła div blakną. Kod działa obecnie tak, jak chcę, ale chciałbym zastąpić jego część zmienną, dzięki czemu mogę zmienić, który div (y) wpłynie. Element, na który wpływa, ma identyfikator "jeden", ale gdy próbuję wprowadzić wartość zmiennej i włożyć ją do kodu w jej miejscu, to już nie działa. Czy istnieje inny sposób, w jaki mogę to zrobić, aby działało? Oto kod:zmienne jquery nie działa

var temp2 = "one"; 
$(document).ready(function() { 
    $("#temp2").click(function() { 
     $("#temp2").animate({ 
      "opacity": "0.15" 
     }, "slow"); 
    }); 
}); 
+1

Pamiętaj, że '$ () 'oczekuje, że łańcuch będzie argumentem (dla selektorów), a _temp2_ jest nazwą zmiennej (a nie łańcuchem). – jahroy

Odpowiedz

7

Jesteś blisko ... spróbuj tego.

var temp2 = "#one"; 
$(document).ready(function() { 
    $(temp2).click(function() { 
     $(this).animate({ 
      opacity: '0.15' 
     }, 
      "slow"); 
    }); 
}); 

here's a working example

Alternatywnie, można po prostu użyć klasy i zapomnieć o zmiennej.

$(document).ready(function() { 
    $('.animateMe').click(function() { 
     $(this).animate({ 
      opacity: '0.15' 
     }, 
      "slow"); 
    }); 
}); 

Please see this working example

również można utworzyć tablicę "ID użytkownika" jeśli chcesz tego samego obsługi uruchomić na wielu elementach

var arr = ["one", "two", "three", "four", "five"]; 
$(document).ready(function() { 
    // loop through the array 
    jQuery.each(arr, function() { 
     // create a local variable 
     var id = '#' + this; 
     $(id).click(function() { 
      $(id).animate({ 
       opacity: '0.15' 
      }, 
       "slow"); 
     }); 
    }); 
}); 

here's a working example

+1

Myślałem, że już próbowałem, ale nie sądzę. Dzięki! – Brett

+1

Wprowadziłem kolejną aktualizację. –