Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/448.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 未捕获类型错误:无法读取属性';隐藏&x27;HTMLButtoneElement.toogleHideShowInput(ol3 search layer.js:32)中未定义的_Javascript - Fatal编程技术网

Javascript 未捕获类型错误:无法读取属性';隐藏&x27;HTMLButtoneElement.toogleHideShowInput(ol3 search layer.js:32)中未定义的

Javascript 未捕获类型错误:无法读取属性';隐藏&x27;HTMLButtoneElement.toogleHideShowInput(ol3 search layer.js:32)中未定义的,javascript,Javascript,我正在开发一个包含openstreetmap的应用程序。在地图上我添加了一个搜索层 这在dextop版本中正常工作,但当我使用移动版本并单击搜索按钮时,出现以下控制台错误: 未捕获的TypeError:无法读取处未定义的属性“hide” HTMLButtoneElement.toogleHideShowInput(ol3搜索层.js:32) 下面我附上搜索操作的javascript代码 有人能帮我吗 (function(f){if(typeof exports==="object"&&a

我正在开发一个包含openstreetmap的应用程序。在地图上我添加了一个搜索层
这在dextop版本中正常工作,但当我使用移动版本并单击搜索按钮时,出现以下控制台错误:

未捕获的TypeError:无法读取处未定义的属性“hide” HTMLButtoneElement.toogleHideShowInput(ol3搜索层.js:32)

下面我附上搜索操作的javascript代码

有人能帮我吗

(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}(g.ol || (g.ol = {})).SearchLayer = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var utils = require('./utils');

function SearchLayer(optOptions) {
  var horseyComponent;
  var select;
  var options = optOptions || {};
  if (optOptions.layer) {
    options.layer = optOptions.layer;
  } else {
    throw new Error('error');
  }
  options.map = optOptions.map;

  var source;
  if (options.layer instanceof ol.layer.Image &&
      options.layer.getSource() instanceof ol.source.ImageVector) {
    source = options.layer.getSource().getSource();
  } else if (options.layer instanceof ol.layer.Vector) {
    source = options.layer.getSource();
  }
  options.colName = optOptions.colName;

  var button = document.createElement('button');
  var toogleHideShowInput = function() {
    var input = document.querySelector('form > .search-layer-input-search');
    if (utils.hasClass(input, 'search-layer-collapsed')) {
      utils.removeClass(input, 'search-layer-collapsed');
    } else {
      input.value = '';
      utils.addClass(input, 'search-layer-collapsed');
      horseyComponent.hide();
      select.getFeatures().clear();
    }
  };

  button.addEventListener('click', toogleHideShowInput, false);
  button.addEventListener('touchstart', toogleHideShowInput, false);

  var form = document.createElement('form');
  form.setAttribute('id', 'random');
  form.onsubmit = function(){return false};
  // form.setAttribute('action', 'javascript:void(0);');

  var input = document.createElement('input');
  input.setAttribute('id', 'ol-search-input');
  var defaultInputClass = ['search-layer-input-search'];
  if (optOptions.collapsed) {
    defaultInputClass.push('search-layer-collapsed');
  }
  input.setAttribute('class', defaultInputClass.join(' '));
  input.setAttribute('placeholder', 'Search ...');
  input.setAttribute('type', 'text');

  form.appendChild(input);

  var element = document.createElement('div');
  element.className = 'search-layer ol-unselectable ol-control';

  element.appendChild(button);
  element.appendChild(form);

  ol.control.Control.call(this, {
    element: element,
    target: options.target
  });

  select = new ol.interaction.Select({
    id: options.selectId || 'defaultSearchLayer',
    layers: [options.layer],
    condition: ol.events.condition.never
  });

  var map = options.map;

  map.addInteraction(select);

  var typesToZoomToExtent = [
    'MultiPoint',
    'LineString',
    'MultiLineString',
    'MultiPolygon',
    'Polygon'
  ];

  var typesToZoomToCenterAndZoom = [
    'Point'
  ];
  var returnHorsey = function(input, source, map, select, options) {
    horsey(input, {
      source: [{
        list: source.getFeatures().map(function(el, i) {
          if (el.getId() === undefined) {
            el.setId(i);
          }
          return {
            text: el.get(options.colName),
            value: el.getId() // If GeoJSON has an id
          };
        })
      }],
      getText: 'text',
      getValue: 'value',
      predictNextSearch: function(info) {
        var feat = source.getFeatureById(info.selection.value);
        var featType = feat.getGeometry().getType();
        if (typesToZoomToCenterAndZoom.indexOf(featType) !== -1) {
          var newCenter = ol.extent.getCenter(feat.getGeometry().getExtent());
          map.getView().setCenter(newCenter);
          map.getView().setZoom(options.zoom || 12);
        } else if (typesToZoomToExtent.indexOf(featType) !== -1) {
          map.getView().fit(feat.getGeometry().getExtent(), map.getSize());
        }

        select.getFeatures().clear();
        select.getFeatures().push(feat);
      }
    });
  }
  if (source.getState() === 'ready') {
    horseyComponent = returnHorsey(input, source, map, select, options);
  }
  source.once('change', function(e) {
    if (source.getState() === 'ready') {
      horseyComponent = returnHorsey(input, source, map, select, options);
    }
  });
}

ol.inherits(SearchLayer, ol.control.Control);

module.exports = SearchLayer;

},{"./utils":2}],2:[function(require,module,exports){
'use strict';

function hasClass(el, cls) {
  return el.className && new RegExp('(\\s|^)' +
    cls + '(\\s|$)').test(el.className);
}

function addClass(elem, className) {
  if (!hasClass(elem, className)) {
    elem.className += ' ' + className;
  }
}

function removeClass(elem, className) {
  var newClass = ' ' + elem.className.replace(/[\t\r\n]/g, ' ') + ' ';
  if (hasClass(elem, className)) {
    while (newClass.indexOf(' ' + className + ' ') >= 0) {
      newClass = newClass.replace(' ' + className + ' ', ' ');
    }
    elem.className = newClass.replace(/^\s+|\s+$/g, '');
  }
}

module.exports = {
  addClass: addClass,
  hasClass: hasClass,
  removeClass: removeClass
};

},{}]},{},[1])(1)
});
(函数(f){if(typeof exports==“object”&&typeof module!==“undefined”){module.exports=f()}else if(typeof define==“function”&&define.amd){define([],f)}else{var g;if(typeof window!==“undefined”){g=window}else如果(typeof global!==“undefined”){g=global}else如果(typeof self!==“undefined”){g=global”){g}else(typeof self!=“undefined”){g=“undefined”){global”)else如果(typeof self!{g=self defin})(function(){var define,module,exports;return(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==“function”&&require;if(!u&&a)返回a(o,!0);if(i)返回i(o,!0);var f=new Error(“找不到模块”+o+“”””);throw f.code=“module u未找到”,f}var l=n[o]{exports:};call(o=o,][0)[e][1];返回s(n?n:e)},l,l.exports,e,t,n,r)}返回n[o]。exports}var i=typeof require==“函数”&&require;for(var o=0;o=0){
newClass=newClass.replace(''+className+'');
}
elem.className=newClass.replace(/^\s+|\s+$/g');
}
}
module.exports={
addClass:addClass,
hasClass:hasClass,
removeClass:removeClass
};
},{}]},{},[1])(1)
});

这意味着
horseyComponent
未定义,因此在代码末尾为其赋值之前会调用它?如果可能,请减少链接的代码量,以免包含任何无关内容。这意味着
horseyComponent
未定义,因此,在您将代码末尾的值指定给它之前,它会被调用?如果可能,请减少您链接的代码量,以免包含任何无关的内容。