Nasıl JavaScript tetikleyen bir bağlantı tıklandığında üst için kaydırma web sayfası durdurabilirim?
Bir bağlantı var o kadar kablolu jQuery veya JavaScript bir olay gibi
<a href="#">My Link</a>
Nasıl üst için kaydırma sayfadan engellerim? Ben sayfaya bağlantı ama üstüne gidin gelmez çapa href özniteliği kaldırmak tıklayın-mümkün görünmüyor.
CEVAP
Kısa Cevap:
En basit şey #
yerine #!
href ayarlamaktır
Örneğin,
<a href="#!">Link</a>
tıklandığında herhangi bir kaydırma değil.
Burada bir Keman bu gösteren (bir kaydırma çubuğu gelene kadar sadece tarayıcınızın şöyle dur):
http://jsfiddle.net/9dEG7/
Bu işleri neden spec inekler için:
Bu davranış Navigating to a fragment identifier bölümünde HTML5 spec belirtildi. "#"
a href ile link belgenin üstüne gidin neden olan sebep bu davranış açıkça boş parça bir tanımlayıcı halletmenin yolu olarak belirtilen:
2. Eğer
fragid
boş dize, sonra belgenin belirtilen kısım belgenin üst
Bunun yerine "#!"
a href kullanarak sadece bu kural önler, çünkü çalışır. Yok büyü hakkında ünlem işareti - sadece yapar uygun bir parça tanımlayıcı çünkü oldukça farklı bir tipik fragid ve olası hiç maç id
name
bir öğe üzerinde sayfa. Gerçekten de kullanabiliriz hemen hemen her şey sonra karma; tek fragids bu olmayacak kafi boş dize, kelime 'top', ya da dizeleri maçı name
id
öznitelikleri unsurları sayfada.
Daha doğrusu, biz sadece bize belirlemek için aşağıdaki algoritma 8 adım düşmesine neden olacak bir parça tanımlayıcı gerekirbelgenin bir parçası belirttifragid:
URL URL ayrıştırıcı algoritması uygulamak ve izin verinfragidelde edilen ayrıştırılmış URL parçası bileşeni.
Eğer
fragid
boş dize, sonra belgenin belirtilen kısım belgenin üst; algoritma burada dur.İzin verin
fragid bytes
yüzde çözümlenmesi sonucufragid
.İzin verin
decoded fragid
UTF-8 kod çözücü algoritması uygulanması sonucu olabilirfragid bytes
. Eğer UTF-8 kod çözücü kod çözücü bir hata verirse, dekoder iptal ve adım etiketli atlamak yerineno decoded fragid
.Eğer DOM bir öğe varsa, bu KİMLİĞİ tam olarak eşit
decoded fragid
sonra ağaç sırada ilk bu eleman belgenin belirtilen parçasıdır; algoritma burada dur.Hayır deşifre fragid: Eğer DOM öğesi ise orada tam olarak eşit olan bir name niteliği vardır
fragid
(21 ** değil), sonra ağaç sırada ilk bu eleman belgenin belirtilen parçasıdır; algoritma burada dur.Eğerfragidbir ASCII büyük küçük harf duyarsız dize
top
, sonra belgenin belirtilen kısım belgenin üst; algoritma burada dur maç.Aksi takdirde, belgenin belirtilen kısmı yok.
Adım 8 vurduğumuz sürecebelgenin belirtilen kısmı yokaşağıdaki kuralı devreye giriyor:
Eğer belirtilen kısmı ise yok ... sonra kullanıcı Aracısı bir şey yapmak gerekir.
tarayıcı kaydırma yok ediliyor.
Nasıl bir bağlantı tıklandığında bir t...
Nasıl bir html düğmesi tıklandığında d...
Nasıl web sayfası yeniden konumlandırm...
Nasıl Javascript Çağırmak İçin Bir Bağ...
Bir oluşturmak için '' eğer ...