Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/68.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 仅Windows上的Safari:TypeError:';未定义';不是函数(计算';this.$el.find(";.icon search";)。获取(0)。单击()_Javascript_Jquery_Backbone.js_Safari - Fatal编程技术网

Javascript 仅Windows上的Safari:TypeError:';未定义';不是函数(计算';this.$el.find(";.icon search";)。获取(0)。单击()

Javascript 仅Windows上的Safari:TypeError:';未定义';不是函数(计算';this.$el.find(";.icon search";)。获取(0)。单击(),javascript,jquery,backbone.js,safari,Javascript,Jquery,Backbone.js,Safari,我想提交一个HTML表单时,搜索字段是活跃的,并进入按钮被点击。下面的一行($el.find('.icon search').get(0).click();)在每个浏览器中都可以正常工作。在safari中,我遇到了一个错误 init: function() { if(!this.$el.hasClass('block-wheretobuy-map')){ this.setEventHandlers(); } }, setEventHandl

我想提交一个HTML表单时,搜索字段是活跃的,并进入按钮被点击。下面的一行($el.find('.icon search').get(0).click();)在每个浏览器中都可以正常工作。在safari中,我遇到了一个错误

  init: function() {
      if(!this.$el.hasClass('block-wheretobuy-map')){
        this.setEventHandlers();
      }

  },

  setEventHandlers: function() {
      _.bindAll(this, "onFormSubmit", "_on_keydown");
      this.$el.find('.icon-search').click( this.onIconClick );
      this.$el.find('#frm_city').keydown( this._on_keydown );
  },

  _on_keydown: function(event){
    if(event.keyCode == 13){
      this.$el.find('.icon-search').get(0).click();
    }
  },

  onIconClick: function ( event ){
      var url = $(this).attr('href');
      if (url.indexOf("?") >= 0) {
          url = url + '&l=';
      } else {
          url = url + '?l=';
      }
      url = url + $('#frm_city').val();
    $(this).attr('href', url);
  },
HTML


在哪里买
在你附近找一家商店

城市,邮政编码
Safari中的错误:

Safari TypeError:“未定义”不是函数(正在计算 '这是。$el.find(“.icon search”).get(0)。单击()

如果get(0),则使用first()


first()返回jQuery对象,get(n)返回DOM对象

this.$el.find('.icon-search').click( this.onIconClick );
this.$el.find('#frm_city').keydown( this._on_keydown );
需要

this.$el.find('.icon-search').click( $.proxy(this.onIconClick, this) );
this.$el.find('#frm_city').keydown( $.proxy(this._on_keydown, this) );
我从中找到了答案


您是否调试以查看find()返回的内容和get()返回的内容?this.$el.find('.icon search')返回错误消息“undefined不是对象(计算'this.$el.find')”。奇怪的是,这只发生在windows上的Safari中。谁在windows上使用Safari?;)这个对象是什么?这是你所期待的吗?我也很好奇!我觉得这很奇怪。这是DOMSWindow上的_on _键是如何绑定的?这只会导致表单不再在任何浏览器中提交。Thnx用于查找,但这不会改变任何内容。
this.$el.find('.icon-search').click( this.onIconClick );
this.$el.find('#frm_city').keydown( this._on_keydown );
this.$el.find('.icon-search').click( $.proxy(this.onIconClick, this) );
this.$el.find('#frm_city').keydown( $.proxy(this._on_keydown, this) );
var a = $('.shell a')[0];
var evObj = document.createEvent('MouseEvents');
evObj.initMouseEvent('click', true, true, window);
a.dispatchEvent(evObj);