使用jQuery定义的onInput事件创建元素?

时间:2013-06-09 22:50:24

标签: javascript jquery

我正在尝试使用jQuery创建DOM元素。我想创建这个DOM元素,并定义一个'on input'事件。

这有效:

var headerInput = $('<input/>', {
    'class': 'headerInput',
    type: 'text'
});

headerInput.on('input', function() {
    backgroundManager.get('activePlaylist').set('title', $(this).val());
});

这不是:

var headerInput = $('<input/>', {
    'class': 'headerInput',
    type: 'text',
    input: function(){
        backgroundManager.get('activePlaylist').set('title', $(this).val());
    }
});

我想知道为什么?我认为这两种语法是相同的。

1 个答案:

答案 0 :(得分:2)

它说:

  

从jQuery 1.8开始,任何jQuery实例方法(jQuery.fn的方法)都可以用作传递给第二个参数的对象的属性。

但是没有这样的jQuery方法input。并非每个事件都存在实例方法。

您可以使用on属性,如下所示:

var headerInput = $('<input/>', {
    'class': 'headerInput',
    type: 'text',
    on: {
        input: function(){
            backgroundManager.get('activePlaylist').set('title', $(this).val());
        }
    }
});

可以在documentation中找到更多信息和示例。