2012-02-25 19 views
20

Jquery Mobile, sıralama bağlantılarını sayfa istekleri olarak ele almaya karar verdi. Ancak, aynı sayfaya (yani href = "# specs") bağlantı bağlantıları olan bir blog gönderisi yükünüz varsa bu iyi bir şey değildir.Nasıl JQuery Mobile içinde çalışmak için Linkler almak için?

Belirli bir sayfada jquery mobile'ın çapa bağlantı kullanımını devre dışı bırakmanın bir yolu var mı? Kullanmayacağımı bildiğim şekilde bağlantı noktalarını kullanabilmem için sayfanın bir bölümüne bırakıyorum. ?

Ben sadece aynı sayfada çapa bağlantılar için bir çözüm gerek (yani: href = "# gözlük").

sayesinde

cevap

42
Sen haber etiketi üzerinde data-ajax="false" ekleyerek deneyebilirsiniz

. Ajax olmadan diğer etki gösterecek veya bu rel = "dış", = veri ajax "yanlış" ya da hedef var

Linkler Bağlama

Ajax ile yüklü olmayacak bağlıyor. Bunun yerine, bu bağlantılar, animasyonlu geçişi olmadan tam sayfa yenilemesine neden olur. Her iki özellik (rel = "dış" ve veri ajax = "false") aynı etkiyi ancak farklı bir anlam anlamı: rel =, başka bir siteye veya etki bağlarken kullanılmalıdır "harici" ise veriler- ajax = "false", etki alanınızdaki bir sayfanın Ajax aracılığıyla yüklenmesini sağlamak için kullanışlıdır. Güvenlik kısıtlamaları nedeniyle, çerçevesi, her zaman Ajax davranışından dış etki alanlarına giden bağlantıları seçer.

Referans - http://jquerymobile.com/demos/1.0.1/docs/pages/page-links.html

+1

Teşekkür ederim !!!!!! – capdragon

+0

Sanırım onu ​​bağlantı etiketine koymak istiyorsunuz (çapa etiketinin aksine)? –

+0

Bu, aynı jquery mobil uygulamasında harici sayfalara (bağlantılara değil) bağlantı verirken de yararlıdır, yani, "index.html" ile "create.html # creations" öğesinden işaret eden bir bağlantınız vardır. Bazen JQM komutları gibi çalışır, ancak bazen öyle değildir, bu yüzden 'data-ajax = "false" 'atribute mükemmel bir çözümdür. – Francisco

2

Sen sayfanın sonuna aşağıdaki kodu ekleyebilirsiniz:

<script type="text/javascript"> 
    $('a.native-anchor').bind('click', function(ev) { 
     var target = $($(this).attr('href')).get(0).offsetTop; 
     $.mobile.silentScroll(target); 
     return false; 
    }); 
</script> 

Ve çapa bağlantıları sınıfı "yerli-çapa" ekleyin.

tarayıcınızın geri düğmesi bağlantı konumundan sonraki sayfaya taşımak ve olmayacaktır çünkü toplam sollution değil, ama hiç çalışmıyor linkler daha iyidir.

burada bu sollution bulundu: Eğer mevcut bir siteyi dönüştürme, benim gibi olan ve şu anda her sayfada geçmesi istemiyorsanız jQuery Mobile Anchor Linking

+0

, sayfa başka bir sayfadan (genellikle JQuery mobile'da olduğu gibi) ajax yüklenmişse, kodu data-role = "page" öğesinin sonuna eklediğinizden emin olun. –

0
$(document).bind("mobileinit", function() { 
    $.mobile.ajaxEnabled = false; 
}); 
4

. Başlığınıza bir satır kod ekleyebilir ve başlığınızın tamamı ile varolan tüm iç bağlantı bağlantılarınızın tümü data-ajax = "false" etiketini ekleyecektir. Tabii

, bu daha önceden başlığında kendi javascript dosyasını içeren varsayılır. Eğer siz değilseniz, yine de her sayfaya dokunmanız gerekir. Ama bu satırı eklendi Şimdiye kadar her sayfada bulunan tek javascript dosyası ...

$("a").each(function() { if(this.href.indexOf("#")>=0) $(this).attr("data-ajax",false); }); 

Bu $ (document) gider .ready() blok var. Henüz bu bloğa sahip değilseniz, işte bloğun tamamı burada.

$(document).ready(function() { 
    $("a").each(function() { if(this.href.indexOf("#")>=0) $(this).attr("data-ajax",false); }); 
}); 

Bu yardımcı olur umarım. Aynı çözüm user700284 teklifleri, ancak otomatik bir şekilde.

-1

teşekkür ederiz bana

<script> 
    $(document).ready(function() { 
    $("a").each(function() { 
     if (this.href.indexOf("index.php") >= 0) $(this).attr("data-ajax", false); 
    }); 
    }); 
</script> 

benim belge kök olduğu index.php ile # yerini bu çözüm çalıştı. Ama, bu

$(document).bind('mobileinit', function() { 
    $.mobile.loader.prototype.options.disabled = true; 
    $.mobile.ajaxEnabled = false; 
    $.mobile.linkBindingEnabled = false; 
    $.mobile.loadingMessage = false; 
}); 

Sonra custom.js dosyasına bu kodu yerleştirebilirsiniz jquery mobil js önce web sayfanıza içine bu dosyayı eklemek zorunda formu düğmesi ie için input type="submit"

0

İlk çalışmıyor yüklendi.

'mobilinit' olayı hemen tetikleniyor
İlgili konular