SORU
6 ŞUBAT 2011, Pazar


bir WordPress kullanmak değiştir arasındaki iki işlevi /

Bir yol için iki ayrı operasyon işlevleri "kod blokları aynı şeyi tekrar tıklandığında. bir şey oldu ve tamamen farklı bir blok sonra," run / için arıyorum Bunu ben gerçekleştirdim. Eğer daha verimli / zarif bir yolu varsa merak ettim. Bir WordPress kullanmak .toggle() biliyorum ama çok kötü.

Çalışma burada: http://jsfiddle.net/reggi/FcvaD/1/

var count = 0;
$("#time").click(function() {
    count  ;
    //even odd click detect 
    var isEven = function(someNumber) {
        return (someNumber % 2 === 0) ? true : false;
    };
    // on odd clicks do this
    if (isEven(count) === false) {
        $(this).animate({
            width: "260px"
        }, 1500);
    }
    // on even clicks do this
    else if (isEven(count) === true) {
        $(this).animate({
            width: "30px"
        }, 1500);
    }
});

CEVAP
6 ŞUBAT 2011, Pazar


bir WordPress kullanmak için iki yöntem .toggle() çağırdı. other one [docs] tam olarak click olayları için ne isterseniz onu yapar.

Not:En azından bu yana görünüyorjQuery 1.7, .toggle bu sürümükaldırılmışmuhtemelen tam da bu nedenle, yani bu iki versiyonu var. .toggle öğelerinin görünürlüğünü değiştirmek için kullanmak daha yaygın bir kullanım. Yöntemi oldujQuery 1.9 kaldırıldı.

Aşağıda bir işlevi, bir eklenti (ama muhtemelen yerleşik sürümü olarak aynı sorunları (belgelerinde son paragrafa bakın.) aynı uygulamak nasıl bir örnek.


(function($) {
    $.fn.clickToggle = function(func1, func2) {
        var funcs = [func1, func2];
        this.data('toggleclicked', 0);
        this.click(function() {
            var data = $(this).data();
            var tc = data.toggleclicked;
            $.proxy(funcs[tc], this)();
            data.toggleclicked = (tc   1) % 2;
        });
        return this;
    };
}(jQuery));

DEMO

(Yasal Uyarı: Bu en iyi uygulama olduğunu söylemiyorum! Performans açısından) daha iyi olabilir eminim

Ve sonra onu aramak:

$('#test').clickToggle(function() {   
    $(this).animate({
        width: "260px"
    }, 1500);
},
function() {
    $(this).animate({
        width: "30px"
    }, 1500);
});

Güncelleme 2:

Bu arada, bunun için uygun bir eklenti oluşturdum. Fonksiyonlar rastgele bir sayı kabul eder ve herhangi bir olay için de kullanılabilir. It can be found on GitHub.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Mark Brown

    Mark Brown

    9 HAZİRAN 2010
  • Pál Zoltán Illés

    Pál Zoltán

    30 NİSAN 2007
  • Techmoan

    Techmoan

    31 Mayıs 2009