Replace jQuery.fn with $.fn since it is already wrapped, added onChange to be called after adding or removing a tag

This commit is contained in:
Mario Estrada
2011-05-24 19:22:06 -05:00
parent 74520e1cbb
commit 8c45811838
+29 -27
View File
@@ -19,7 +19,7 @@
var delimiter = new Array();
var tags_callbacks = new Array();
jQuery.fn.addTag = function(value,options) {
$.fn.addTag = function(value,options) {
var options = jQuery.extend({focus:false,callback:true},options);
this.each(function() {
@@ -55,14 +55,14 @@
f(value);
}
}
jQuery.fn.tagsInput.updateTagsField(this,tagslist);
$.fn.tagsInput.updateTagsField(this,tagslist);
});
return false;
};
jQuery.fn.removeTag = function(value) {
$.fn.removeTag = function(value) {
value = unescape(value);
this.each(function() {
@@ -79,7 +79,7 @@
}
}
jQuery.fn.tagsInput.importTags(this,str);
$.fn.tagsInput.importTags(this,str);
if (tags_callbacks[id] && tags_callbacks[id]['onRemoveTag']) {
var f = tags_callbacks[id]['onRemoveTag'];
@@ -91,7 +91,7 @@
};
jQuery.fn.tagExist = function(val) {
$.fn.tagExist = function(val) {
if (jQuery.inArray(val, $(this)) == -1) {
return false; /* Cannot find value in array */
@@ -101,12 +101,12 @@
};
// clear all existing tags and import new ones from a string
jQuery.fn.importTags = function(str) {
$.fn.importTags = function(str) {
$('#'+id+'_tagsinput .tag').remove();
jQuery.fn.tagsInput.importTags(this,str);
$.fn.tagsInput.importTags(this,str);
}
jQuery.fn.tagsInput = function(options) {
$.fn.tagsInput = function(options) {
var settings = jQuery.extend({interactive:true,defaultText:'add a tag',minChars:0,width:'300px',height:'100px','hide':true,'delimiter':',',autocomplete:{selectFirst:false},'unique':true,removeWithBackspace:true},options);
@@ -128,10 +128,11 @@
delimiter[id] = data.delimiter;
if (settings.onAddTag || settings.onRemoveTag) {
if (settings.onAddTag || settings.onRemoveTag || settings.onChange) {
tags_callbacks[id] = new Array();
tags_callbacks[id]['onAddTag'] = settings.onAddTag;
tags_callbacks[id]['onRemoveTag'] = settings.onRemoveTag;
tags_callbacks[id]['onChange'] = settings.onChange;
}
var markup = '<div id="'+id+'_tagsinput" class="tagsinput"><div id="'+id+'_addTag">';
@@ -144,12 +145,11 @@
$(markup).insertAfter(this);
$(data.holder).css('width',settings.width);
$(data.holder).css('height',settings.height);
if ($(data.real_input).val()!='') {
jQuery.fn.tagsInput.importTags($(data.real_input),$(data.real_input).val());
$.fn.tagsInput.importTags($(data.real_input),$(data.real_input).val());
}
if (settings.interactive) {
$(data.fake_input).val($(data.fake_input).attr('data-default'));
@@ -185,7 +185,6 @@
$(event.data.fake_input).css('color','#666666');
return false;
});
} else {
// if a user tabs out of the field, create a new tag
@@ -234,23 +233,26 @@
};
jQuery.fn.tagsInput.updateTagsField = function(obj,tagslist) {
id = $(obj).attr('id');
$(obj).val(tagslist.join(delimiter[id]));
};
$.fn.tagsInput.updateTagsField = function(obj,tagslist) {
id = $(obj).attr('id');
$(obj).val(tagslist.join(delimiter[id]));
};
jQuery.fn.tagsInput.importTags = function(obj,val) {
$(obj).val('');
id = $(obj).attr('id');
var tags = val.split(delimiter[id]);
for (i=0; i<tags.length; i++) {
$(obj).addTag(tags[i],{focus:false,callback:false});
}
};
$.fn.tagsInput.importTags = function(obj,val) {
$(obj).val('');
id = $(obj).attr('id');
var tags = val.split(delimiter[id]);
for (i=0; i<tags.length; i++) {
$(obj).addTag(tags[i],{focus:false,callback:false});
}
if(tags_callbacks[id] && tags_callbacks[id]['onChange'])
{
var f = tags_callbacks[id]['onChange'];
f(obj);
}
};
})(jQuery);
})(jQuery);