0

jQuery Mobileを使用していて、単純なリストアイテムをあるページから別のページに移動しようとしています。これが私が使用しているコードのスニペットです:

$('#YesNoMaybePage, #summaryPage').live('pageinit', function() {
$('.green, .blue, .red').click(function(){
    var $move = $('.purchase').prependTo("#summaryPage .theListItem");
});
});

これでうまくいきました。更新したら#summaryPage、クリックし#YesNoMaybePageてイベントを実行します。#YesNoMaybePageただし、を更新して実行すると機能しません。#summaryPageを更新したときに上のhtmlがロードされていない#YesNoMaybePageと思います。それが機能しない理由ですが、正直なところわかりません。なぜそうなるのか、どうすればこれを修正できるのか、何か考えはありますか?

たくさんの世界に感謝します。あなたを愛してます。さらに明確にするために、まったく同じ問題で私が持っているコードの別のスニペットがあります:

$('#YesNoMaybePage, #categorizePage').live('pageinit', function() {
$('.green, .blue, .red').click(function(){
    var $move = $('.purchase').prependTo("#categorizePage .theListItem");
});
});
4

3 に答える 3

1

これらの「ページ」は両方とも同時にdomにありますか?現在表示されていないページにhtml要素を追加しようとしているようです。それは飛ばないでしょう、あなたは現在ロードされているdomだけを変更することができます。

于 2013-01-15T05:12:36.610 に答える
0

これはおそらく、JavaScriptがyesnomaybepage.htmlではなくsummarypage.htmlに含まれているためです。これは、jqmで予想される動作です。サイトのすべてのページに同じjsを含めるか、すべてのページを1つのhtmlファイルにパックする必要があります。 http://jquerymobile.com/demos/1.2.0/docs/pages/multipage-template.html

于 2013-01-16T17:04:49.097 に答える
0

以前も同じ問題がありました。私の問題はターボリンクにあります。それを無効にすることで、それは私にとって完璧に機能します。これを削除する非常に簡単な方法は次のとおりです。app/assets/javascripts/application.js

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require turbolinks
//= require_tree .

ターボリンクの前にある等号を削除するだけです

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
// require turbolinks
//= require_tree .

以上です

于 2016-02-06T04:26:04.133 に答える