繁体   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