簡體   English   中英

我如何傳遞javascript addListener函數值來更改內部函數

[英]How can i pass javascript addListener function value to change function inside

我有addListener函數和change函數在那里。 如何使用JavaScript通過addListener結果change函數

$(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兩個功能。 如何傳遞fun1 pincodefun2里面?

您已經在全局范圍內定義了密碼。 只需使用它。 這里的function fun2(val) val function fun2(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);
    });
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM