2017-08-29 67 views
0

裏面的功能函數和change函數在那裏。如何傳遞addListener結果change函數中使用JavaScript我該如何通過javascript addListener函數值來改變

$(document).ready(function() { 
    // find pincode 
    var input = document.getElementById('location_input'); 
    var options = { 
    types: ['address'], 
    componentRestrictions: { 
     country: 'in' 
    } 
    }; 
    autocomplete = new google.maps.places.Autocomplete(input, options); 
    var pincode; 

    google.maps.event.addListener(autocomplete, 'place_changed', function fun1() { 
    var place = autocomplete.getPlace(); 
    for (var i = 0; i < place.address_components.length; i++) { 
     for (var j = 0; j < place.address_components[i].types.length; j++) { 
     if (place.address_components[i].types[j] === "postal_code") { 
      pincode = place.address_components[i].long_name; 
      fun2(pincode); 
      //alert(pincode); 
     } //return pincode; 
     } 
    } 
    }); 

    $('input[type="checkbox"],#location_input').change(function fun2(val) { 
    var ids = ['filter_AFFILIATION_1', 'filter_AFFILIATION_2', 'filter_AFFILIATION_3', 'filter_AFFILIATION_4']; 
    var data = {}; 
    for (var i = 0; i < ids.length; i++) { 
     if (document.getElementById(ids[i]).checked === true) { 
     data['request' + i] = $('#' + ids[i]).val(); 
     } 
    } 
    var pincode = val; 
    alert(pincode); 
    console.log(pincode); 
    }); 
}); 

這裏fun1fun2兩種功能。我怎麼能通過fun1pincodefun2裏面?

回答

0

您已經在全局範圍內定義了PIN碼。 只需使用它。 這裏function fun2(val) val是Event傳遞給事件回調的對象。 而你不必使用命名函數,匿名函數將作爲事件回調。

$(document).ready(function() { 
    // find pincode 
    var input = document.getElementById('location_input'); 
    var options = { 
     types: ['address'], 
     componentRestrictions: { 
      country: 'in' 
     } 
    }; 
    autocomplete = new google.maps.places.Autocomplete(input, options); 
    var pincode; 
    google.maps.event.addListener(autocomplete, 'place_changed', function() { 
     var place = autocomplete.getPlace(); 
     for (var i = 0; i < place.address_components.length; i++) { 
      for (var j = 0; j < place.address_components[i].types.length; j++) { 
       if (place.address_components[i].types[j] === "postal_code") { 
        pincode = place.address_components[i].long_name; 
       } //return pincode; 
      } 
     } 
    }); 
    $('input[type="checkbox"]').change(function (event) { 
     var ids = ['filter_AFFILIATION_1', 'filter_AFFILIATION_2', 'filter_AFFILIATION_3', 'filter_AFFILIATION_4']; 
     var data = {}; 
     for (var i = 0; i < ids.length; i++) { 
      if (document.getElementById(ids[i]).checked === true) { 
       data['request' + i] = $('#' + ids[i]).val(); 
      } 
     } 
     alert(pincode); 
     console.log(pincode); 
    }); 
}); 
+0

我嘗試調用pincode值到fun2裏面,但我沒有得到我得到一個對象,但我怎麼能idequalgy pincode對象的值。我想讓ajax同時調用pincode和更改函數值,但我沒有得到兩個值在一起 – somesh

+0

我添加了工作代碼到我的答案。試試吧 –

+0

並閱讀https://api.jquery.com/change/關於使用回調事件。 –

相關問題