fungsi jquery animate saat mengklik satu tombol

    $('.edit').click(function () {
    var anim = 0;
    if(anim == 0){
        $('.foo_menu1').animate({
            bottom:"0px",
            opacity: "1",
            }, 600);

        $('.foo_menu2').animate({
            bottom:"-47px",
            opacity: "0",
            }, 600);

        anim += 1;
    }else{
        $('.foo_menu1').animate({
            bottom:"-47px",
            opacity: "0",
            }, 600);

        $('.foo_menu2').animate({
            bottom:"0px",
            opacity: "1",
            }, 600);
            anim=0;
    }
    });
})

Saya Pemula di jQuery. tolong bantu saya, saya punya Satu tombol dan dua kotak div. secara default kotak div pertama (foo_menu1) akan muncul. sambil mengklik tombol, kotak pertama akan muncul dan kotak kedua akan hilang.

tapi saat saya klik pertama kali berfungsi dengan baik hingga kondisi IF pertama. tetapi jika saya mengklik lagi btn yang sama, itu tidak masuk ke dalam fungsi else.


person user687414    schedule 01.04.2011    source sumber
comment
Pindahkan var anim = 0; ke luar fungsi klik. Anda menyetel ulang animasi ke nol setiap klik.   -  person mVChr    schedule 01.04.2011


Jawaban (1)


Anda perlu memindahkan var anim = 0; ke luar dan menjadikannya variabel global.

var anim = 0;

$('.edit').click(function () {
  if(anim == 0){
  // code
  } else {
  }
})

Kalau tidak, Anda menginisialisasi ulang saat diklik.

Juga, saya sarankan Anda melihat .data() API jquery jika Anda ingin menyimpan data yang berkaitan dengan elemen. Ini akan menghindari variabel global dalam cakupan Anda.

http://api.jquery.com/jQuery.data/

person JohnP    schedule 01.04.2011