Javascript 插件中未触发onKeyup和onChange事件

Javascript 插件中未触发onKeyup和onChange事件,javascript,Javascript,我正在为我的网站创建一个插件。我的目的是从网站上获取一些数据并将其编译成对象 然后,当文本输入到可编辑的范围中时,我将通过这些对象进行搜索。然而,每当我输入数据时,test方法似乎不会被调用。有什么想法吗 var MarvSearch = function(elm, options) { this.element = elm; this.options = jQuery.extend({}, this.defaults, options); this.makes = n

我正在为我的网站创建一个插件。我的目的是从网站上获取一些数据并将其编译成对象

然后,当文本输入到可编辑的范围中时,我将通过这些对象进行搜索。然而,每当我输入数据时,
test
方法似乎不会被调用。有什么想法吗

var MarvSearch = function(elm, options) {

    this.element = elm;
    this.options = jQuery.extend({}, this.defaults, options);
    this.makes = null;
    this.models = null;
    this.init();

  }; MarvSearch.prototype = {

    init: function() {
      var $models = [], $makes = [];
      // Filter model array into objects
      $(modelItems).each(function() {
        var $num = $(this)[2].match(/\((.*)\)/)[1],
            $title = ($(this)[2].replace(/\((.*)\)/, '')).trim(),
            $entry = { 'makeID': $(this)[0], 'modelID': $(this)[1], 'title': $title, 'num': $num };
        $models.push($entry);
      });
      // Filter make select options into array
      $('#make option').each(function() {
        if ($(this).val() !== '')
          $makes.push({
            makeID: $(this).val(), 
            title: ($(this).text()).replace(/\((.*)\)/, '').trim(),
            num: $(this).text().match(/\((.*)\)/)[1]
          });
      });
      this.models = $models;
      this.makes = $makes;
    },
    defaults: {

    },
    attach: function() {
      var self = this;
      JQuery(this.element).bind({
        'change.MarvSearch': function(){ self.test(this.element); },
        'keyup.MarvSearch': function(){ self.test(this.element); }
      });
    },
    test: function() {
      console.log(this.element);
    }
  };
  var MarvSearch = new MarvSearch(document.getElementById('marv-search'));

您将
this.element
传递给
test()
,但无法提取任何参数
console.log()
不是千里眼。
this.element
应该是在顶部初始函数中设置的,这似乎是attach方法@Roamer-1888Ah的情况,我现在明白你的意思了@Roamer-1888,我已将其更改为
self.test()
@MartynBall但它确实执行
默认值
等等?大概您发现了
JQuery
打字错误,现在应该使用
.on()
而不是
.bind()
。您将
这个.element
传递到
test()
中,但无法提取任何参数
console.log()
不是千里眼。
this.element
应该是在顶部初始函数中设置的,这似乎是attach方法@Roamer-1888Ah的情况,我现在明白你的意思了@Roamer-1888,我已将其更改为
self.test()
@MartynBall但它确实执行
默认值
等等?大概您发现了
JQuery
打字错误,现在应该使用
.on()
而不是
.bind()