0

だから私はモーダルを持っています。フェッチがトリガーされたとき。1 つの JSON ファイル。JSON には複数のノードがあります。ただし、最後の 4 つのノードをターゲットにして、それより前のものを省略したいだけです。これらのノードの名前は次のとおりです。post_a, post_b, post_c, post_d. これらは常にアレイ内の最後の 4 つのノードになります。 それは私が考えることができる最高のロジックです:c

私はポートフォリオの最後のインタラクションにいて、これら 4 つのノードだけをトラバースする方法にとても困惑しています。私はそれが論理を狂わせることを理解しており、これで問題ありません。私はうさぎの穴をかなり下っていますが、今はそれを機能させたいだけです。:(

サンプルの JSON ファイル:

{
  created_at: "2013-07-15T05:58:25Z", 
  id: 21, 
  name: "Skatelocal.ly",
  svg: "<svg> ... </svg>",
  post_a: "This is an awesome post 1", 
  post_b: "This is an awesome post 2", 
  post_c: "this is an awesome post 3", 
  post_d: "this is an awesome post 4"
}

以下は、どのようにトラバースするかのトリガーと JSfiddle です。

JSFIDDLES


postInModal = function(data, status) {

  $(".next").on({
    click: function() {
    //jsfiddles has working interaction dont want to cludder  
    $(".modal-main").hide().html(data.post_X).fadeIn()
    }
  });
  return $(".prev").on({
    click: function() {
    //jsfiddles has working interaction dont want to cludder
    $(".modal-main").hide().html(data.post_X).fadeIn()
    }
  });
};
return popProject = function(x) {
  return $.ajax({
    type: "GET",
    url: "/works/" + x + ".json",
    success: postInModal
  });
4

2 に答える 2

0

このロジックを試して、JSON オブジェクトをトラバースしてpost_*値の値を見つけ、配列オブジェクトにプッシュすることができます。これで、この配列オブジェクトを使用して、.nextまたは.prevボタンがクリックされたときに反復処理を行うことができます

トラバースコードは以下の通り

       function js_traverse(o) {
            var type = typeof o;
            if (type == "object") {
                for (var key in o) {
                    if (key.indexOf("post_") >= 0)
                        print(o[key]);                        
                }
            } 
        }

デモ コードで指定したタイプのオブジェクトが複数ある場合は、次元配列オブジェクトなどを使用できます。

このフィドルでデモを確認することもできます

質問大歓迎!

于 2013-07-17T08:20:14.093 に答える