2010-06-21 20 views
14

Sitenin her web sayfasında (head elementinde) bulunan jQuery kodum var.jQuery'ye yalnızca belirli bir web sayfasında bir işlevi çalıştırmasını söylerim?

jQuery'ye belirli bir işlevin yalnızca bir sayfada ve sitede bulunan diğer tüm sayfalarda çalıştırılmaması gerektiğini söylemek için hangi seçici sözdizimini kullanabilirim?

Seçicide bir sayfa adı veya URL belirtebilir miyim?

Çok teşekkürler

+0

bu sitede sayfa kodunda herhangi bir tanımlama kimlikleri ya da (hatta veya adları) sınıfları yok. ama senin fikirlerinle .. bu aptalca kolaydı .. yol adı için koşullu test ve sonra sadece bunu yap .. Teşekkürler, dostlar .. – Joseph

cevap

23

Sen kullandığım bir olabilir.

if (top.location.pathname === '/my/path') 
{ 
    /* magic ... */ 
} 

Yoksa daha taşınabilir hale ve deyim bazı anlam (yani ne hakkında olduğunu bilecek okuma birisi) eğer gerçek vermek istiyorsanız - Eğer belgenin gövde elemanı erişiminiz varsa, şunları yapabilirsiniz Bu komut dosyasını çalıştırmak istediğinizi gösteren bir sınıf ekleyin.

$(function() // on document.ready() 
{ 
    if ($('body.has-facebook-api').length > 0) 
    { 
     /* magic ... */ 
    } 
}); 

bu emin olun: Yukarıdaki örnekte /* magic ... */ Facebook API dahil bir ilgisi varsa

Yani örneğin, vücudunuzun <body class="has-facebook-api"> gibi bakmak ve sonra jQuery ile çek yapmak yapabilir jQuery'yi ayrı bir komut dosyası etiketine ekledikten sonra çalışır.


bunu outputted hale geçmeden sayfanızın görseller dönüştürmek için bu komut dosyası kullanmıyorsanız biz bunu bile, ben yakın senaryonuz etiketlerinin tüm ya da çoğu yerleştirmek öneriyorum altbilgiyi sayfayı daha önce oluşturmaya

+3

Ben vücut etiketine bir sınıf veya kimlik ekleyerek ve oradan gitmek tavsiye ederim. Bu şekilde, sitenizi veya dosya yapınızı hareket ettirseniz bile, yine de çalışır. –

+1

Css/js için genel bir başlık öğesinden başka bir şeye erişemiyorum .. eklediklerim her sayfada aynıdır .. bu yüzden hangi sayfanın hedeflendiğini anlama ihtiyacı vardır .. ama bir çözüm olduğunu düşünüyorum Bütün bu harika fikirlerde gizlice .. çok fazla – Joseph

1

Belki window.location.pathname kontrol? deyim top.location.pathname kontrol eğer

if (window.location.pathname == "/path/to/page.html") { 
    callFunction(); 
} 
0

Bir jQuery Seçici mevcut URL'yi belirtemez, sen ancak document.location nesnesini kullanarak basit bir çek yazabilirsiniz:

if (document.location.pathname == "/somefolder/somepage") { 
    // do some special stuff on this page! 
} 
0

Sana ne dilde yazıyorsanız böyle şeyler yapmayı tercih sizin içinde verir. düzeniniz/şablon/konumunda html kadar hizmet veriyor ne olursa olsun olabilir yanlış/gerçek basitçe çıktı bir javascript değişken

if ($page = '/foo/bar.html/') { 
    echo 'baz = true'; 
} else { 
    echo 'baz = false'; 
} 

Sonra bu fonksiyonları çalıştıran veya olmasın gerekip gerekmediğini belirlemek için js onay Baz var . Bu durumda js'ye% 100 güvenmiyorsunuz, ama bu daha iyi. Sunucunuz her zaman hangi sayfa/URL'yi kullandığınızı bilecek ve js'leriniz ile hangi sayfada bulunduğunu belirlemeye çalışan tarayıcı uyumsuzlukları konusunda endişelenmenize gerek kalmayacaktır.

İlgili konular