2012-04-30 22 views
1

私は次のコードを持っています。このコードは、人がリンクをクリックすると実行されます。しかし、人がデフォルトのアドレスを読み込むためにページを訪問したときに、最初にロードする必要があります。だから、このコードの後に​​私は$( '。viewmap')を持っています。ページロードで複数回実行されるJqueryコード

問題は、クリックアクションがクラスviewmapの各リンクで実行されていることです。このコードをデフォルト値0のmapidで一度実行させることは可能ですか?この機能をマップのデフォルト読み込みに再利用して、誰かがviewmapクラスのリンクの1つをクリックした場合は再利用できますか?あるいは、別々の関数を作成する必要がありますか? 1つはデフォルトのロード用で、もう1つはクリックアクション用です。

$('.viewmap').click(function() { 

    var id = $('#id').text(); 
    var mapid = $(this).attr('title'); 

    $.ajax({ 
     cache:false, 
     url:'path/to/script' 
     dataType:'json', 
     success: function(data) { 

      $('#currmap').gMap(
        { 
         latitude : data.lat, 
         longitude : data.lon, 
         address : data.address, 
         maptype : 'ROADMAP', 
         zoom  : 8, 
         markers:[{ 
            latitude : data.lat, 
            longitude : data.lon, 
            address  : data.address, 
            html  : data.display 
           }] 

        } 

      ); 

     } 

    }); 

}); 

答えて

1

は、それ自身の機能で処理コードを入れてみてください。ページの読み込み時に直接呼び出すことができます。また、要素でクリックイベントが発生した場合でも呼び出すことができます。試してみてください:

function updateMap() { 
    var id = $('#id').text(); 
    var mapid = $(".viewmap").attr('title'); 

    $.ajax({ 
     cache:false, 
     url:'path/to/script' 
     dataType:'json', 
     success: function(data) {  
      $('#currmap').gMap({ 
       latitude : data.lat, 
       longitude : data.lon, 
       address : data.address, 
       maptype : 'ROADMAP', 
       zoom  : 8, 
       markers:[{ 
        latitude : data.lat, 
        longitude : data.lon, 
        address  : data.address, 
        html  : data.display 
       }] 
      }); 
     } 
    }); 
} 

updateMap(); 
$('.viewmap').click(updateMap); 

これにより、問題の原因となっている要素のclickイベントを手動でトリガする必要がなくなります。

+0

ページに '$( '。viewmap')クラスを持つdivのlofが含まれている場合はどうでしょうか? – mgraph

+0

' .viewmap'要素を1回クリックすると関数が1回呼び出されます。 –

+0

あなたは正しい – mgraph

1

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

$('.viewmap:first').click(); 
+0

私は他の答えを受け入れましたが、上記の解決策も同様に、2つのうち最も速く実装することを言及したいと思います。しかし、私は他のもののために関数を再利用することができる2番目のソリューションです。誰も助けてくれてありがとう! – John

関連する問題