Değiştirme belgesi.konum:karma sayfa kaydırma yapmadan
Birkaç sayfa içerik yüklemek için ajax kullanarak aldık ve derin bir sayfasına bağlantı gerekir birkaç kez var. Bir bağlantı yerine "" ve tıklatın insanlara "ayarlar" yardım etmek için insanlarla bağlantı yapabilmek için . Kullanıcıların ^em>kullanıcı.ayarlar . ASP #
İnsan bölümleri (teknik destek için, vb.) için doğru bağlantıları sağlamak için izin vermek için Bir düğmeye tıklandığında otomatik olarak URL hash değiştirmek için set var. Tabii ki tek sorun bu durumda, aynı zamanda bu öğe için sayfayı kaydırır.
Bir şekilde bu devre dışı bırakmak için var mı? Şimdiye kadar bunu nasıl yaptığımı aşağıda.
$(function(){
//This emulates a click on the correct button on page load
if(document.location.hash){
$("#buttons li a").removeClass('selected');
s=$(document.location.hash).addClass('selected').attr("href").replace("javascript:","");
eval(s);
}
//Click a button to change the hash
$("#buttons li a").click(function(){
$("#buttons li a").removeClass('selected');
$(this).addClass('selected');
document.location.hash=$(this).attr("id")
//return false;
});
});
return false;
kaydırma sayfa keser - ama bağlantıyı hiç değil iş yapar diye umuyordum. Bu sadece gezinmek çok diye.
Herhangi bir fikir?
CEVAP
Düğüm KİMLİĞİ etkisiz hale getirmek için Sana ihtiyacım var, karma olarak ayarlanana kadar. adım 1: Bu karma belirlenirken düğüm kapalı KİMLİĞİ çıkarma, ve sonra yeniden ekliyor.
hash = hash.replace( /^#/, '' );
var node = $( '#' hash );
if ( node.length ) {
node.attr( 'id', '' );
}
document.location.hash = hash;
if ( node.length ) {
node.attr( 'id', hash );
}
2. adım: ID düğüm nereye dayalı kaydırma tetikleyecek Bazı tarayıcılar onlara biraz yardım etmek gerekir, bu yüzden en son ne zaman gördünüz. Görüş üstüne div
ekstra eklemem gerekiyor, karma KİMLİĞİNİ ayarlayın ve sonra her şeyi geri roll:
hash = hash.replace( /^#/, '' );
var fx, node = $( '#' hash );
if ( node.length ) {
node.attr( 'id', '' );
fx = $( '<div></div>' )
.css({
position:'absolute',
visibility:'hidden',
top: $(document).scrollTop() 'px'
})
.attr( 'id', hash )
.appendTo( document.body );
}
document.location.hash = hash;
if ( node.length ) {
fx.remove();
node.attr( 'id', hash );
}
Adım 3: bir eklenti Sarın ve location.hash
... ... yazmak yerine bunu kullanın
Nasıl penceresinden karma kaldırmak iç...
Rota değiştirme değil'yeni sayfa ...
- Pencere.konum:karma - değiştirmek mi...
Yeni sayfa JavaScript kullanarak yükle...
Kaydırma çubukları var hatta div'...