我正在尝试使用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());
}
});
我想知道为什么?我认为这两种语法是相同的。
最佳答案
它说:
从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中找到更多信息和示例。