<div data-role="tokentextarea">
</div>
- // Option 01
$(".selector").tokentextarea
({
create: function(event, ui)
// Handle the create event
}
});
- // Option 02
- $(".selector").bind("create", function(event, ui)
- {
- // Handle the create event
- });
**/
/**
@event select
<div data-role="tokentextarea">
</div>
- // Option 01
- $(".selector").tokentextarea
- ({
- select: function(event, ui)
- {
- // Handle the select event
- }
- });
- // Option 02
$(".selector").bind("select", function(event, ui)
{
// Handle the select event
<div data-role="tokentextarea">
</div>
- // Option 01
- $(".selector").tokentextarea
- ({
- add: function(event, ui)
- {
- // Handle the add event
- }
- });
- // Option 02
$(".selector").bind("add", function(event, ui)
{
- // Handle the add event
+ // Handle the add event
});
*/
/**
<div data-role="tokentextarea">
</div>
- // Option 01
- $(".selector").tokentextarea
- ({
- remove: function(event, ui)
- {
- // Handle the remove event
- }
- });
- // Option 02
$(".selector").bind("remove", function(event, ui)
{
// Handle the remove event
lockBlock.removeClass( "ui-tokentextarea-sblock" ).addClass( "ui-tokentextarea-block" );
}
$( this ).removeClass( "ui-tokentextarea-block" ).addClass( "ui-tokentextarea-sblock" );
- self._trigger( "select" );
+ $view.trigger( "select" );
});
inputbox.bind( "keyup", function ( event ) {
self._currentWidth += self._calcBlockWidth( textBlock );
self._modifyInputBoxWidth();
- self._trigger( "add" );
+ $view.trigger( "add" );
},
_removeTextBlock : function () {
var self = this,
$view = this.element,
- lockBlock = $view.find( "div.ui-tokentextarea-sblock" );
+ lockBlock = $view.find( "div.ui-tokentextarea-sblock" ),
+ _temp = null,
+ _dummy = function () {};
if ( lockBlock !== null && lockBlock.length > 0 ) {
self._currentWidth -= self._calcBlockWidth( lockBlock );
lockBlock.remove();
self._modifyInputBoxWidth();
- this._trigger( "remove" );
+
+ this._eventRemoveCall = true;
+ if ( $view[0].remove ) {
+ _temp = $view[0].remove;
+ $view[0].remove = _dummy;
+ }
+ $view.triggerHandler( "remove" );
+ if ( _temp) {
+ $view[0].remove = _temp;
+ }
+ this._eventRemoveCall = false;
} else {
$view.find( "div:last" ).removeClass( "ui-tokentextarea-block" ).addClass( "ui-tokentextarea-sblock" );
}
_ellipsisTextBlock : function ( textBlock ) {
var self = this,
$view = self.element,
- maxWidth = self._viewWidth - ( self._labelWidth + self._anchorWidth ) * 2;
+ maxWidth = self._viewWidth / 2;
if ( self._calcBlockWidth( textBlock ) > maxWidth ) {
$( textBlock ).width( maxWidth - self._marginWidth );
blocks = $view.find( "div" );
if ( blocks.length > index ) {
$( blocks[index] ).removeClass( "ui-tokentextarea-block" ).addClass( "ui-tokentextarea-sblock" );
- this._trigger( "select" );
+ $view.trigger( "select" );
}
return null;
},
var self = this,
$view = this.element,
blocks = $view.find( "div" ),
- index = 0;
+ index = 0,
+ _temp = null,
+ _dummy = function () {};
+
if ( this._focusStatus === "focusOut" ) {
return;
}
// remove selected button
index = ( ( position < blocks.length ) ? position : ( blocks.length - 1 ) );
$( blocks[index] ).remove();
- this._trigger( "remove" );
+
+ this._eventRemoveCall = true;
+ if ( $view[0].remove ) {
+ _temp = $view[0].remove;
+ $view[0].remove = _dummy;
+ }
+ $view.triggerHandler( "remove" );
+ if ( _temp) {
+ $view[0].remove = _temp;
+ }
+ this._eventRemoveCall = false;
}
self._modifyInputBoxWidth();
},
},
destroy : function () {
- var $view = this.element;
+ var $view = this.element,
+ _temp = null,
+ _dummy = function () {};
+
+ if ( this._eventRemoveCall ) {
+ return;
+ }
$view.find( "label" ).remove();
$view.find( "div" ).undelegate( "click" ).remove();
$view.find( "a" ).remove();
$view.find( ".ui-tokentextarea-input" ).unbind( "keyup" ).remove();
+ this._eventRemoveCall = true;
+ if ( $view[0].remove ) {
+ _temp = $view[0].remove;
+ $view[0].remove = _dummy;
+ }
+ $view.remove();
+ if ( _temp) {
+ $view[0].remove = _temp;
+ }
+ this._eventRemoveCall = false;
+
this._trigger( "destroy" );
}
});