1

私のJqmobileコードでは、data-transition="slide"アンカーリンクを適用してページを転送しようとしています。問題は、リンクされたページにカスタムjqueryが自分でコーディングされていることです...data-transition="slide"とhrefでアンカーをヒットすると確かにトランジットしますが、リンクされたページのカスタムjqueryスクリプトが実行されません...使用してみdata-ajax-"false"ましたが、この場合はカスタムスクリプトは実行されますが、実行されませんdata-transition="slide"...両方を一緒に実行したい...可能ですか... ??

これが簡単なカスタムです。これでは、入力ボックスを表示/非表示にしています。

<script type="text/javascript">
$(document).bind("pageinit", function(){
      $('#near_index').hide();
      $('#find').click(function() {
             $('#near_index').show();       
      });
    });
</script>

これがHTMLです。

<a href="category.html" data-transition="slide" data-ajax-"false"><img src="images/23-bird.png" alt="Category 2" class="ui-li-icon iconSmall">Category 2</a>
4

1 に答える 1

1

pageinitはプラグインの初期化用です-ここを参照してください。

したがって、このイベントは、JQMが最初にロードされたときに1回だけ発生します。「ページ」(DOM)が初期化された後。ロードした他のページはDOMにプルされますが、別のpageinitはトリガーされません。

pagebeforeshowpageshowなど、他の利用可能なイベント(上記のリンク)を使用するだけです。これらは、DOMにロードされるすべてのページで起動します。console.log( "HELLO")をイベントハンドラー内に配置して、起動するかどうかを確認するだけです。

トランジションの編集
: data-ajax = "false"を設定してトランジション(ページAからページBにスライド)を設定することはできません。トランジションは、AJAXを使用して新しいページをDOMと通常のリンクにロードした結果であるためです( data-ajax = "false")古いDOMを削除し、新しいページ(新しいDOM)をロードします。

JQMのコンセプトは、常に同じ「ページ」にとどまり、Ajaxを介して新しいページをロードイン/ロードアウトすることです。これがトランジションを実行する方法です(新しいページをロードし、古いページの隣に配置してからスライドします)。

これは、カスタムコードが起動しない理由でもある可能性があります。これは、data-ajax = "false"と言うと、JQMに「ここで完了です」と言って新しいページをロードするためです。

data-ajax = "false"が必要ない場合は、省略してください。

于 2012-06-08T08:23:28.490 に答える