2013-06-12 128 views
1

我有一個WordPress站點,需要使用刷卡來顯示頁面,我選擇使用Jquery Mobile,並且它能夠正常工作。現在,我們有2種語言,使用wpml插件。我的Swipe代碼運行良好,除了當我們使用更改語言按鈕刷卡失敗。Jquery Mobile有2組頁面

有關問題的詳細信息。

我們在我們的網站上只有3個純文本頁面,使用2種語言。而在Footer我們有鏈接改變語言。此外,客戶不喜歡有Ajax頁面加載,所以我做的是創建三個Div data-role=page並把data-next,data-prev作爲#div-$postid。所以導航工作絕對正常。我從data-role=page以外的頁腳。

現在,當我單擊頁腳中的更改按鈕時,它將加載英文頁面[我使用Fiddler看到],然後從服務器中取第一個data-role=page,並替換/滑動其內容。但是,由於它只選擇第一個數據角色,所有其他英文頁面都不會在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使用其中的李變化基於語言變量的UI基於李名單,爲任何一種語言顯示不同的圖像。

1)我添加了一個「noswipe」類標籤,所以我可以指它在jQuery的

2)我想補充以下內容:

+0

請您添加代碼或重現上jsfiddle.net問題。 – Omar

+0

如果您在更改語言後輸入例如site.net/#english,它會更改爲該頁面嗎?因爲頁面在DOM中。 – Omar

+0

當我單擊具有類似site.com/en網址的英語頁腳鏈接時,它首先顯示Data-role =頁面內容,而提琴手顯示完整頁面下載,但是當我在瀏覽器上查看源代碼時,它僅顯示一個數據 - 角色僅在其他語言的html中合併。 –

回答

2

要停止加載頁面/鏈接的Ajax,請添加鏈接錨點data-rel="external"data-ajax="false"。這將正常加載頁面而不進行任何轉換。

參考:jQuery Mobile - Links

1

對於那些誰也有類似的問題,我用以下解決它代碼

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

上述代碼只是強制執行跳過移動的解析和調用,併爲我的情況工作。