0

言語セレクターの jQuery ドロップダウン リストがあります。現時点では、それがどのように機能するかのスケルトン設定がありますが、アクティブな jQuery 関数を開始する方法にかなり混乱しています。

私がやりたいことは、ユーザーがリストから言語をクリックすると、言語名 (または将来的にはフラグ) が「現在の div クラス」の上部に表示されることです。

現在のクラスにあるデフォルトは、英語のリスト項目です。

これを開始する方法がわかりませんが、調査の結果、要素を作成しif statementて使用できることがわかりましたか? append/prepend私は正しい方向に進んでいますか?

私は Codeigniter を使用していて、言語トランスレータを作成したので、html アンカー タグの内部で、私の php は次のように書かれています。

<li id="french"><?php echo anchor('fr/'.strtolower($page_info['fr_title']), 'FR'); ?></li>

これは、現在どのように設定されているかの大まかなプロトタイプへのリンクです。チュートリアルやガイダンスをいただければ幸いです。

言語がフランス語の場合は、フランスの国旗などを表示します。

$(function() {
    if ( document.location.href.indexOf('en') > -1 ) {
        alert('english');
    } else {
        if ( document.location.href.indexOf('ru') > -1 ) {
            alert('russian');
        }else {
            if ( document.location.href.indexOf('fr') > -1 ) {
                alert('french');
            }else {
                if ( document.location.href.indexOf('fr') > -1 ) {
                    alert('french');    
                    }
                }
            }
        }
    });

ありがとう!

リンク: http://jsfiddle.net/Wmb4n/2/

4

3 に答える 3

1

このフィドルをチェックしてください

$('#lang_selector ul li').click(function () {
    $('.current').text($(this).text());    
});

編集: ステートメントif.. elseをクリーンアップする必要があります。

$('#lang_selector ul li').click(function () {
    $('.current').text($(this).text());
var loc = document.location.href;
    if (loc.indexOf('en') > -1) {
        alert('english');
    } else if (loc.indexOf('ru') > -1) {
        alert('russian');
    } else if (loc.indexOf('fr') > -1) {
        alert('french');
    } else if (loc.indexOf('fr') > -1) {
        alert('french');
    }
});
于 2013-06-25T09:42:42.723 に答える
0

わかりましたので、user1671639は上記の私の質問に答えましたが、別の問題は、ページが新しい言語コンテンツで更新されていたことでした。私も試しました$('#lang_selector ul li').click(function (e) { $('.current').text($(this).text()); e.preventDefault(); });

選択したアイテムをアクティブに保ちますが、言語コンテンツでページを更新しません。

これが正しい方法であるかどうかはわかりませんが、誰かがより簡単な解決策を思いつくことができれば、それは素晴らしいことです.

スクリプトへのリンクを追加しましたが、画像と php が含まれていないため機能しません。基本的に、ユーザーがリスト内のアイコンを選択すると、ページが更新され、jQuery は URL に fr または en ect があるかどうかをチェックし、そうであれば、li id = french と画像を現在のスパンに追加します。

リンク: http://jsfiddle.net/Wmb4n/7/

これは機能します:

$(function() {
    var loc = document.location.href;

        if (loc.indexOf('en') > -1) {
            $("span.current").append(english);

        } else if (loc.indexOf('ru') > -1) {
            $("span.current").append(russian);

        } else if (loc.indexOf('fr') > -1) {
            $("span.current").append(french);

        } else if (loc.indexOf('de') > -1) {
            $("span.current").append(german);
        }
    });

アンカー タグの言語翻訳を変更するには、次のようにします。

<?php echo anchor('fr/'.strtolower($page_info['fr_title']), 'FR'); ?>
于 2013-06-25T10:37:35.143 に答える
0

これがあなたが望むものかどうかわからない..

やってみて..

 $(document).ready(function(){
    $('.current').click(function(){
    $(this).siblings('ul').slideToggle();
});
    $('ul li').click(function(){
      $(this).parent().prev('span').text($(this).text());
    });
});  

ここでフィドル

于 2013-06-25T09:40:24.783 に答える