2017-10-16 1 views
0

クリックイベントに基づいてAJAX URLパラメータを変更しようとしています。例えば、Iのようなデータベースを有する:クリックイベントに基づいてAJAX URLパラメータを変更しようとしています

http://test/test/test/state/NJ

をこれは、特定の状態のデータを反映するように変更することができます。したがって、URLの最後に「NJ」の代わりに「FL」と入力すると、NJではなくFloridaのデータが表示されます。私の問題は、米国の地図を使って作業していることです。特定の州をクリックすると、clickイベントが必要になり、AJAX URLが動的に変更されます。ありがとう、以下のコードをご覧ください。クリックイベントがデータURLパラメータを変更しない理由はわかりません。

$.ajax({ 
     dataType: "jsonp", 
     url: $(this).data('url'), 
     cache: true, 
     success: function(json){  

     } 
}); 

$('#mapWhereToBuy').usmap({ 
    click: function(event, data) { 
    var description = "Sorry. We do not carry products in this state."; 
    switch(data.name) 
    { 

     case 'NJ': 
      description = 'New Jersey'; 
      $(this).attr('data-url', 'http://test/test/test/state/NJ'); 
      break; 
     case 'PA': 
      description = 'Pennsylvania'; 
      $(this).attr('data-url', 'http://test/test/test/state/PA'); 
      break; 
    } 

    $('#clicked-state').text(description); 

    } 
}); 

console.log($(this).data('url')); 

答えて

1

あなたはそれが難しいと思っています。あなたは.usmapの中でajaxを発射することができます。下記の例を参照してください。

$('#map').usmap({ 
    click: function(event, data) { 
    switch(data.name){ 
     case 'NJ': 
      description = 'New Jersey'; 
      break; 
     case 'PA': 
      description = 'Pennsylvania'; 
      break; 
     default: 
      description = 'Sorry. We do not carry products in this state.'; 
      break; 

    } 
    $.ajax({ 
      dataType: "jsonp", 
      url: 'http://test/test/test/state/'+data.name, 
      cache: true, 
      success: function(json){ 
      //Organized ajax returned data from here. 
      } 
     }); 
    } 
}); 
+1

ありがとうございます!これはまさに私が必要なものです – Tom

関連する問題