1

我正在尝试使用 jQuery 创建一个 DOM 元素。我想使用定义的“输入”事件创建这个 DOM 元素。

这有效:

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());
    }
});

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

4

1 回答 1

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());
        }
    }
});

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

于 2013-06-09T23:03:49.673 回答