JavaScript'imde, zaman geçtikten sonra başka bir sayfaya gitmek için bir bağlantıyı tıklayarak taklit edilmesi gereken bir zamanlayıcı var. Bunu yapmak için jQuery click()
işlevini kullanıyorum . Kullandım $().trigger()
ve window.location
ayrıca, üçünün de amaçladığı gibi çalışmasını sağlayabilirim.
Bazı garip davranışlar gözlemledim click()
ve ne olduğunu ve nedenini anlamaya çalışıyorum.
Bu soruda anlattığım her şey için Firefox kullanıyorum, ancak diğer tarayıcıların bununla ne yapacağıyla da ilgileniyorum.
Bir olay işleyicisi kullanmamış $('a').bind('click',fn)
veya $('a').click(fn)
ayarlamamış olsaydım , arama $('a').click()
hiç bir şey yapmaz gibi görünüyor. Tarayıcı yeni sayfayı yüklemediğinden, bu olay için tarayıcının varsayılan işleyicisini çağırmaz.
Ancak, önce bir olay işleyicisi ayarlarsam, olay işleyicisi hiçbir şey yapmasa bile beklendiği gibi çalışır.
$('a').click(function(){return true;}).click();
Bu, yeni sayfayı kendim tıklamış gibi yükler.
Yani sorum iki yönlü: Bir yerde yanlış bir şey yaptığım için bu garip davranış mı? ve click()
kendim bir işleyici oluşturmamışsam neden arama varsayılan davranışla hiçbir şey yapmıyor?
DÜZENLE:
Hoffman sonuçlarımı çoğaltmaya çalıştığında belirlediği gibi, yukarıda tarif ettiğim sonuç aslında gerçekleşmiyor. Dün gözlemlediğim olaylara neyin sebep olduğundan emin değilim, ancak bugün soruda anlattığım şeyin olmadığından eminim.
Dolayısıyla yanıt, tarayıcıda "sahte" tıklamalar yapamayacağınız ve tüm jQuery'nin gerçekleştirdiği etkinlik işleyicinizi çağırmaktır. window.location
Sayfayı değiştirmek için hala kullanabilirsiniz ve bu benim için iyi çalışıyor.