1

スワイプを使用してページを表示する必要がある wordpress サイトがあり、Jquery Mobile を使用することを選択し、正常に動作します。現在、サイトには 2 つの言語があり、wpml プラグインを使用しています。また、言語変更ボタンのスワイプを使用する場合を除いて、私のスワイプコードはうまく機能します。

問題の詳細。

私たちのウェブサイトには、2 つの言語で 3 つのテキストのみのページしかありません。フッターには、言語を変更するためのリンクがあります。また、クライアントは Ajax ページをロードすることをdata-role=page嫌いdata-nextます。したがって、ナビゲーションは問題なく機能します。の外側にフッターを配置しました。data-prev#div-$postiddata-role=page

ここで、フッターの変更ボタンをクリックすると、英語のページが読み込まれ [Fiddler を使用して見ました]、最初data-role=pageにサーバーから取得してそのコンテンツを /slide に置き換えます。ただし、最初のデータ ロールのみを選択するため、他のすべての英語ページは HTML に変換されません [DOM を更新するだけで、英語版に移動しません]。他の英語のページがdomにないため、スワイプは失敗します。

また、フッターは変更されていないので、私が望むのは、スワイプする代わりにリンクを強制的にナビゲートできるかどうかです。Jquery Mobile はすべての A タグでスワイプを強制していますdata-role=page

私が理にかなっていることを願っています。

ここに編集コードがあります:[このコードがまったく役立つかどうかはわかりません]

<?php 
    get_header(); 
global $post;   
$args = array('post_type' => 'mobile_slide','showposts' => '-1', "order" => "DESC");

$the_query = new WP_Query($args);            
if($the_query->have_posts()){
    while($the_query->have_posts()) { $the_query->the_post();
    $prev =get_previous_post();
    $next =get_next_post();
    if($prev) {
        $prev = "#page-" . $prev->ID; //get_permalink($prev->ID);
    } else {
        $prev='';
    }
    if($next) {
        $next = "#page-".$next->ID; //get_permalink($next->ID);
    } else {
        $next='';
    }

    if (has_post_thumbnail( $post->ID ) ) {     
        $image = wp_get_attachment_image_src( get_post_thumbnail_id( $post->ID ), 'slider_image' ); ?>
        <div id="page-<?php echo $post->ID; ?>" data-dom-cache="true"  data-transition="slide"  class="page" data-role="page" data-prev="<?php echo $prev; ?>" data-next="<?php echo $next; ?>" style="background-image:url('<?php echo $image[0]; ?>'); background-position:center center; background-color:#000; background-repeat:no-repeat; ">
        <?php } else { ?>
        <div id="page-<?php echo $post->ID; ?>" data-dom-cache="true"  data-transition="slide" class="page" data-role="page" data-prev="<?php echo $prev; ?>" data-next="<?php echo $next; ?>"> 
        <?php } ?>
        <div class="post_box">
            <h2><blockquote><?php the_title(); ?></blockquote></h2>
            <div class="post_entry">
               <?php the_content(); ?>
            </div>
        </div><!-- post_box -->
        </div>

   <?php   } 
   } ?>
   <?php get_footer(); ?>

get_footer が言語変数に基づいて LI を変更する Ul li ベースのリストを使用して、いずれかの言語の異なる画像を表示することを除いて、これですべてです。

4

2 に答える 2

2

Ajax によるページ/リンクの読み込みを停止するには、リンク アンカーdata-rel="external"またはdata-ajax="false". これにより、遷移なしで通常どおりページが読み込まれます。

リファレンス: jQuery Mobile - リンク

于 2013-06-12T10:48:14.373 に答える
1

同様の問題を抱えている人のために、次を使用して修正します。

1)「noswipe」クラスをAタグに追加して、Jqueryで参照できるようにします

2)次のコードを追加します

$(function(){
  $(".noswipe").click(function(){
     window.location.href= $(this).attr("href");
      return false;
   });
 }); 

上記のコードは、モバイルの解析と呼び出しをスキップするよう強制するだけで、私の場合は機能します。

于 2013-06-12T10:41:32.550 に答える