我正在尝试在select2初始化内访问$(this)
,但它返回undefined
。
$(".tags").each(function() {
var placeholder = "Select Email";
if($(this).attr('name') === 'names[]')
placeholder = "Select Name";
$(this).select2({
tags: true,
placeholder: placeholder,
language: {
noResults: function () {
return 'Type and enter to add new';
},
},
escapeMarkup: function (markup) {
return markup;
},
createTag: function(params) {
console.log($(this).attr('name')); // returns undefined
if (params.term.indexOf('@') === -1)
return null;
return {
id: params.term,
text: params.term
}
}
})
});
select2()
被初始化为每个.tags
。我需要在这里访问内部的$(this)
。
我该怎么做?
您可以在调用$(this)
之前保留对select2()
的引用
问题是因为createTag
函数不在实例化select2
的元素的范围内运行。