2012-03-09 15 views
0

これは私のコードの一部です。javascriptのUncaught TypeErrorに関する配列

しかし、コンソールには登場:

Uncaught TypeError: Cannot read property 'title' of undefined

alert(data[index].title);が表示されない理由を私は知りません。

どうすればいいですか?

var data = []; 

    var api = function() { 

     clear_overlays(); 

     var url = 'http://tw.tranews.com/map/dStores.asp?x1=' + bounds.x1 + '&x2=' + bounds.x2 + '&y1=' + bounds.y1 + '&y2=' + bounds.y2; 

      $.get('proxy.php', {url: url}, function (resp) { 

      var near = $('.near'); 
      near.empty(); 

      var xml = $(resp); 
       var data = xml.find('m'); 

      $.map(data, function (obj, i) { 
       var m = $(obj); 
         var latlng = new google.maps.LatLng(m.find('vLat').text(), m.find('vLng').text()); 
       var title = m.find('vName').text(); 

         var markerOptions = { 
          map: map, 
          position: latlng, 
          title: title 
         }; 
         var marker = new google.maps.Marker(markerOptions); 
         markers.push(marker); 
         marker.setMap(map); 


         var store = { 
          image: m.find('vImg1').text(), 
          title: m.find('vName').text() 

         }; 
         data.push(store); 

         var image = m.find('vImg1').text();       
         var html = '<div class="perview"><a href="#"><img src="'+image+'" width="50" height="50" alt="'+title+'" /></a></div>'; 
         $(html).appendTo(near);       
      }); 
       $('.perview').on("click", "img", function(){ 
        var index = $('.preview img').index(this); 

         alert(data[index].title); 
       /*var msg = '<div class="preview">' + $(this).attr('alt') + '</div>'; 
        $('.info_content').animate({opacity: 1}, 300, function() {       
         $('.info').hide().empty().append(msg).delay(300).fadeIn(500); 
        });*/ 
       }); 
      }, 'XML'); 
    }; 

答えて

1
$('.perview').on("click", "img", function(){ 
    var index = $('.preview img').index(this); 

perviewpreviewではないので、おそらく、問題となっています。要素がセット内にない場合、.index-1を返しますが、これは配列のインデックスとしては機能しません。私はあなたのマークアップを知らないが、あなたはおそらくどちらか他の名前を変更する必要があります。

関連する問題