Soru JQuery Mobile tetikleyicisi ('create') komutu çalışmıyor


JQuery Mobile bu gece ağlarımı ağlatıyor. Özel kontroller oluşturmaya çalışıyorum, bu yüzden uygulamam aracılığıyla bazı öğeleri tekrarlamıyorum ve bana zor bir zaman veriyor. Özellikle, bir HTML dosyasında aşağıdakiler var:

<div id="custom-header" data-role="header" data-position="inline" data-theme="f">
    <a href="index.html" data-icon="back" style="margin-top:5px" data-theme="b">Back</a>
    <div style="text-align: center; padding-top: 5px; padding-bottom: 3px"><img src="../images/logo.png" ></div>
    <a href="index.html" data-icon="home" style="margin-top:5px" data-theme="b">Home</a>
</div>

Ana dosyamda aslında yapıyorum:

<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
<script src="http://code.jquery.com/mobile/1.0rc2/jquery.mobile-1.0rc2.min.js"></script>        
<div data-role="page" id="test-console" data-theme="m">

    <div id="me-header"></div>

    <script>

        $.get('header.html', function (retData) {
            $('me-header').html(retData).trigger('create');
        });

     </script>

</div>

İşte sorun şu - Başlık, header.html içeriğini doğrudan JQM sayfamıza yapıştırdığım zamanki gibi aynı şeyi yapmıyor. Neredeyse tetikleyici ('yaratmak') gibi bir şey yapmıyor gibi hissediyor.

Herhangi bir fikir? Üç saat kadar yaktım ve dersler gibi http://jquerymobiledictionary.pl/faq.html başvuruyor gibi görünmüyor ..


21
2017-11-11 01:59


Menşei




Cevaplar:


Üstbilgi, altbilgi veya içerik değiştirirken tetikleyebilirsiniz pagecreate sayfada:

$('#me-header').closest(":jqmData(role='page')").trigger('pagecreate');

Bu bir jQM hatası: https://github.com/jquery/jquery-mobile/issues/2703. Konu raporundaki bir yoruma göre, arama pagecreate Birden fazla kez, sorunlara neden olabilir, ancak https://github.com/jquery/jquery-mobile/issues/2703#issuecomment-4677293.


14
2018-06-04 08:26





Mevcut 'en iyi' cevabı buldum inanıyorum. Kısacası, 'başlık' ve 'altbilgi' tipi veri rol öğeleri standart gereçler değildir. Bunlar bir çeşit karma yapıdır. Bunu JQueryMobile'in kaynak kodundan geçerek buldum. 'Oluştur' yöntemine sahip değiller, bu yüzden çağrılamaz.

Benim geçici çözümüm sadece benim için bunu yapmak için widget beklemek yerine, sınıfları doğrudan koduma uygulamaktı. İdeal değil, ama yeterince iyi çalışıyor.


8
2017-11-18 00:58



Bu çok ilginç. Üstbilgi beni deli ediyor. - stormlifter


Tetikleyiciyi buldum ('oluştur');

Vücuda uygulandığında böyle çalışır:

$('body').append(html).trigger('create');

Ama şu anda karşılaştığım konu, ul listesi tanımlanmamış bir hata veriyor.


2
2018-05-21 12:56





Bu soru şimdiye kadar yeteri kadar eski, ama ben sadece problemle karşılaştım, işte bu yüzden onu nasıl kullandım - (bu, set veri temasını koruyor ve içeren div ve header'lar için doğru roller uyguluyor)

$('your_selector').find('div[data-role="header"], div[data-role="footer"]').each(
    function( ){
        var dR = $(this).attr('data-role');
        var dT = $(this).attr('data-theme');
        $(this).addClass('ui-' + dR + ' ui-bar-' + dT).attr('role', (dR == 'header' ? 'banner' : 'contentinfo') ).children('h1, h2, h3, h4').each(
            function( ){
                $(this).addClass('ui-title').attr({'role':'heading', 'aria-level':'1'});
            }
        )
    }
);

Kodunuza bağlı olarak, bunu bir işlev olarak ayarlamak ve seçicinizi bir argüman olarak göndermek daha uygun olabilir. Umarım yardımcı olur.


2
2017-12-08 19:40





Benim için, .trigger('create'); öğeye uygulandığında her zaman çalışır data-role="page"

Bunu dene : $('#test-console').trigger('create');

Umarım yardımcı olur..


2
2017-12-15 01:25





$('me-header').html(retData).trigger('create');

olmalı:

$('me-header').append(retData).trigger('create');

1
2017-11-13 21:36



Ben değiştim $('me-header').html(retData).trigger('create'); için $('me-header').append(retData).trigger('create'); - şanssız. Sadece dosyanın yüklendiğini doğrulamak için retData değerini uyardım. Hızlı bir örnek verdim me-again.com/test/test.html ve me-again.com/test/header.html. Tetik ('yarat') gibi ateş etmiyor gibi .. - Anthony


Belki de deneyin:

$('#me-header').append(retData).trigger('create');

0
2017-11-15 10:15