【发布时间】:2017-03-12 09:04:54
【问题描述】:
我正在尝试制作一个使用自动完成功能的标签插件(jquery ui:https://jqueryui.com/autocomplete/)。当您单击下拉列表中的值时,它会创建一个带有十字的跨度以将其删除。
我的问题是如何在我的插件中注册新创建的跨度十字符号上的点击事件。
/**
* Tags Autocomplete
*
* Create tags through autocompletion
*/
(function($)
{
'use strict';
$.fn.tagsAutocomplete = function(options)
{
// defaults
var defaults = {
autocomplete : {
source : "",
test_data: ["test", "testing", "tester", "John DOe"]
},
tags : {
class : "tag"
}
};
// selected element
var elm = this;
// extend the options
var o = $.extend(true, defaults, options);
// Start autocomplete
$(elm).autocomplete({
minLength: 0,
source: o.autocomplete.test_data,
select: function( event, ui ) {
// add tag to DOM, before the input with a remove_tag
$(this).before('<span class="tag tag-green tag-new">'+ui.item.value+'' +
'<span class="remove_tag"></span>' +
'</span>');
// clear input
this.value = "";
// return false
return false;
}
});
/**
* Remove span after clicking the cross
* @param obj
*/
function removeSpan(obj){
alert('clicks works');
//obj.closest(o.tags.class).remove();
// focus input
//obj.focus();
}
// bind events
this.bind("click.remove_tag", removeSpan);
// return elm for chaining
return elm;
};
})(jQuery);
我试过这个:this.bind("click.remove_tag", removeSpan); 但这不起作用。
那么我怎样才能在新的创建跨度上添加一个带有类名 remove_tag 的点击事件
【问题讨论】:
标签: jquery events dynamic plugins click