2016-09-28 2 views
0

THISページ私は07xxxxxxxxの形式で電話番号用の「プレースホルダ」を持っています。緑色のボタン「VEZI TELEFON」をクリックすると、各緑色のボックスのプレースホルダは$ .ajaxを介してJSONファイルの実際の電話番号に置き換えられます。モバイルで動作していない.jsonファイルのコンテンツでhtml要素を取り込むためのスクリプト

スクリプトはデスクトップやラップトップではうまく機能しますが、携帯電話ではの最初のプレースホルダーは置き換えられません。詳細は、プレースホルダが1つしかない場合も同じです。

JSONファイルは、コンテンツを持っている:

{ 
     "telefoane": [{ 
     "id": 1, 
     "tel": "0743127315" 
     }, { 
     "id": 2, 
     "tel": "072245875" 
     }, { 
     "id": 3, 
     "tel": "0756129458" 
     }, { 
     "id": 4, 
     "tel": "0756129668" 
     }, { 
     "id": 5, 
     "tel": "0724153333" 
     }] 
    } 

JSコード:

function showTel() { 
    $(".telefon").on('click', function(){ 
     var index = $(this).closest(".imobil").index(); 
     var $element = $(this); 
     $.ajax({ 
      url: 'telefoane.json', 
      dataType: 'json', 
      type : 'get', 
      cache : 'false', 
      success: function(data){ 
       var tel = data.telefoane[index].tel; 
       console.log(index + ": " + tel); 
       $element.parent().find('.telefon .tel').text(tel); 
      } 
     }); 
    }); 
} 
showTel(); 

// Arata telefon 
$('.telefon').on('click', function(){ 
    $(this).children('.vezi').hide(); 
    $(this).children('.tel').show(); 
}); 

コンソールが妙にデスクトップとモバイル上で2つの異なるものを示しています。

0: 0743127315 
1: 072245875 
3: 0756129668 
4: 0724153333 
Uncaught TypeError: Cannot read property 'tel' of undefined 

モバイル:

1: 072245875 
2: 0756129458 
4: 0724153333 
Uncaught TypeError: Cannot read property 'tel' of undefined 

このコードと間違っている何インデックスの値が...それが縫い目 デスクトップ違うのですか?ありがとうございました!

答えて

1

どう代わりにIDをインデックス()に依存するが、ではないでしょうか?代わりの

function showTel() { 
    $(".telefon").on('click', function(){ 
     var index = $(this).closest(".imobil").data("id"); 
     var $element = $(this); 
     $.ajax({ 
      url: 'telefoane.json', 
      dataType: 'json', 
      type : 'get', 
      cache : 'false', 
      success: function(data){ 
       var tel = data.telefoane[index].tel; 
       console.log(index + ": " + tel); 
       $element.parent().find('.telefon .tel').text(tel); 
      } 
     }); 
    }); 
} 
showTel(); 
0

リスナーをコンテナに追加するのではなく、ボタンに直接追加する必要があります。

これを試してみてください:

$(".vezi")on('click', function(){ 
    var index = $(this).closest(".imobil").index(); 
    var $element = $(this); 
    $.ajax({ 
     url: 'telefoane.json', 
     dataType: 'json', 
     type : 'get', 
     cache : 'false', 
     success: function(data){ 
     var tel = data.telefoane[index].tel; 
     $element.parent().find('.telefon .tel').text(tel); 
     } 
    }); 
}); 
+0

'(クリック$上( "ヴィエジー。") ''、機能(){//ここに コード... });' 私は、( 'click'、function(){ \t //コードここで })に '$( "。telefon" これはHTML構造と一貫しています。しかし、あなたのヒントは役に立ちます。ありがとうございました! – user1647234

関連する問題