2009-07-20 16 views
27

Şu anda istemci üzerinde oldukça büyük bir tablo oluşturmak için jTemplates kullanıyorum, her satırda bir jQuery UI iletişim kutusu açacak bir düğme var. Ancak, sayfayı aşağı kaydırdığımda ve bu düğmelerden birine tıkladığımda jQuery iletişim kutusu açılır, ancak kaydırma konumu kaybolur ve sayfa en üste geri atlar (engelleme ve gerçek iletişim kutusu ekranın dışında görünür). Bu probleme neyin neden yol açabileceğini bilen var mı?Bir jQuery UI İletişim Kutusu açılırken sayfanın üst kısmına doğru kaydırmayı nasıl önleyebilirim?

Teşekkürler.

+0

Bunu daha önce görmüştüm ancak kaydırma konumunun kaybolmadığından emin olmak için aşağıdaki eklentiyi kullandım http://plugins.jquery.com/project/ScrollTo –

cevap

66

İletişim kutusunu açan "düğmeyi" uygulamak için bir bağlantı etiketi kullanıyor musunuz? Öyleyse, ileti dizisini, dönüş etiketinin varsayılan eyleminin başlatılmayacak şekilde false değerini döndürecek şekilde tıklatmasını istersiniz. Bir düğme kullanıyorsanız, göndermediğinden (işleyiciden yanlış döndürerek) ve sayfayı tamamen yenilendiğinden emin olmanız gerekir. Örneğin

,

$('a.closeButton').click(function() { 
    $('#dialog').dialog('open'); 
    return false; 
}); 


<a class='closeButton'>Close</a> 
+1

Angularjs kullanırken aynı sorunu yaşadım ve birkaçını harcadıktan sonra saat, [ng-click] (http://docs.angularjs.org/api/ng.directive:ngClick) kullanırken href özniteliğinden kaçınılması gerektiğini tespit etti. – Ritesh

+0

@Ritesh Burada yine de buna gerek yok. Ben kaldırdım. – tvanfosson

+0

tamam. Href özniteliğini kaldırırsanız, fare imleci görünmez ve bazı stilleri yapmanız gerekebilir. Otomatik olarak işleyen angularjs durumunda bir sorun değildir. – Ritesh

5

değişiklik bu

$('a.closeButton').click(function(e) { 
    e.preventDefault(); 
    $('#dialog').dialog('open'); 
}); 
+0

Ajax ile içerik yüklemek için bunları kullanıyorum ve aynı sorunu yaşıyordum. Bir sayfa aşağı kaydırıldığında ve bir iletişim kutusu açtığımda, sayfayı kapattığımda sayfanın en üste "sıçraması" gerekirdi. ScrollTo eklentisi, ihtiyaç duyduğumdan daha fazla ilgiliydi, yukarıda mükemmel çalıştı. –

+0

Spot! Bağlantı olarak öntanımlıydı! –

-2

gibi kod Deneyebilirsin:

scrollTo(0, jQuery("body")); 
10

senin düğmeleri yerine href="#" ile bir html bağlantı etiketi ile çalışıyorsanız Örneğin, href="javascript:;" tarafından href veya devre dışı bırakmak için kullandığınız diğer herhangi bir yöntem href. Kaymanın gerçekleşmesinin nedeni, sayfanızın en üstünde href="#" kaydırmasıdır.

+0

Bu benim sorunumdu. Ben aslında href'i sildim. Teşekkürler! –

İlgili konular