私はOnsenUI 2(今のところrc15)のpushPage()
機能を使用しようとしています。 OnsenUIと並んで、私はここでのjQuery 3.ページからページへの移動でエラーが発生しました(重複しますか?)
を使用しています特定の要素をクリックするとページをプッシュしなければならないというのが私の関数である。
$(".tile_handler").on("click", ".imalink", function() {
var link = $(this).data().href;
if(link != null){
document.querySelector("#myNavigator").pushPage(link, { animation: "slide-ios" });
}
})
私が最初にページをプッシュすると、それが正常に動作します。私は戻るためにiOSの戻るボタンを使用します。それから私はもう一度それをクリックして、私はこのエラーが発生します(そして、プロセスを繰り返すにつれますますますます):
は、スプリッタのページをロードするようになっている別の関数である:私はスプリッタを経由して2つのページを切り替えると、それはこれを投げて開始し[index.js:450] pushpageはすでに実行中です。ここで
$(".splitter_item").click(function() {
var address = $(this).data('address');
$('#content')[0].load(address).then(menu.close.bind($('#menu')[0]));
})
(そしてより多くの私はページを切り替えるたびに)
[未定義:1]未知(約束)スプリッタ側がロックされています。
何が起こっている私が想定し、私は、ページをロードし、それを残して、私は再びそれをアクセスするとき、それは再びページをロードすることです。しかしas thisなOnsenUI例に示した行動ではないようですその:
document.addEventListener('init', function(event) {
var page = event.target;
if (page.id === 'page1') {
page.querySelector('#push-button').onclick = function() {
document.querySelector('#myNavigator').pushPage('page2.html', {data: {title: 'Page 2'}});
};
} else if (page.id === 'page2') {
page.querySelector('ons-toolbar .center').innerHTML = page.data.title;
}
});
以前にロードされたページを削除すべきであり、これを防止するであろうpopPage()
機能があります。しかし、参照はそれを使用しないので、私は何か間違っていると仮定します。しかし、私は何を知りません。
UPDATE:
私はCodePenで両方の問題を再現するために管理。 Hereはスプリッタエラーで、hereはpushPage()
です。 pushPage()
のように私の機能に問題があるようですが、それをクリックするたびにpushPage()
リクエストが追加されます。理由はわかりません。
両方のエラーは、Rippleエミュレータでのみ発生します(VS2015経由)。私はAndroidのエミュレータでそれらを再現することができないようです(しかし、$(".tile_handler").on("click", ".imalink", function() {
コードは何度も取り消されます)。私はこれをさらにテストしています。
同じページを問題なく何度も繰り返し押すことができます。私は速いcodepenをしました:それを示すhttps://codepen.io/anon/pen/NALzWZ。戻るボタンはpopPage()を実行しますが、わかりますように、同じpage2.htmlテンプレートをナビゲーションスタックに何も問題なく繰り返し送ります。通常、私はそのエラーを取得するか、それを見て、何か他に起こっている。 – Munsterlander
これはiOSやブラウザでのみ発生しますか?また、 'fade-ios'アニメーションを使用すると起こりますか? –
私は少し装備が少ないので、私は今のところエミュレータを使用しています。これはAndroidとiOSのリップルエミュレータで発生します。エラーを再現するCodePenを追加しました。 – rancor1223