Appel de méthode de widget jQuery UI


Les widgets sont créés via Widget Factory à l'aide de méthodes permettant de modifier leur état initialisé et d'effectuer des actions. Il existe deux manières d'appeler des méthodes de widget : via un plugin créé par Widget Factory, ou en appelant une méthode sur un objet instance d'élément.

Appel du plug-in

Utilisez la méthode d'appel du plug-in du widget et transmettez le nom de la méthode sous forme de chaîne. Par exemple, cliquez ici pour voir comment appeler la méthode close() du widget de dialogue.

$( ".selector" ).dialog( "close" );

Si la méthode nécessite des paramètres, veuillez les transmettre au plugin en tant que paramètres supplémentaires. Cliquez ici pour voir comment appeler la méthode de dialogue option().

$( ".selector" ).dialog( "option", "height" );

Ceci renvoie la valeur de l'option height de la boîte de dialogue.

Appel d'instance

Chaque instance de chaque widget est stockée sur l'élément à l'aide de jQuery.data(). Pour récupérer un objet instance, appelez jQuery.data() avec le nom complet du widget comme clé. Les détails sont présentés dans les exemples suivants.

var dialog = $( ".selector" ).data( "ui-dialog" );

Après avoir fait référence à un objet instance, vous pouvez appeler des méthodes directement dessus.

var dialog = $( ".selector" ).data( "ui-dialog" );
dialog.close();

Dans jQuery UI 1.11, la nouvelle méthode instance() facilitera ce processus.

$( ".selector" ).dialog( "instance" ).close();

Type de retour

La plupart des méthodes appelées via le plugin du widget renverront un objet jQuery, de sorte que les appels de méthode peuvent être enchaînés via des méthodes jQuery supplémentaires. Lorsqu'il est appelé sur une instance, undefined est renvoyé. Les détails sont présentés dans les exemples suivants.

var dialog = $( ".selector" ).dialog();
 
// Instance invocation - returns undefined
dialog.data( "ui-dialog" ).close();
 
// Plugin invocation - returns a jQuery object
dialog.dialog( "close" );
 
// Therefore, plugin method invocation makes it possible to
// chain method calls with other jQuery functions
dialog.dialog( "close" )
    .css( "color", "red" );

L'exception concerne les méthodes qui renvoient des informations sur le widget. Par exemple, la méthode isOpen() de la boîte de dialogue.

$( ".selector" )
    .dialog( "isOpen" )
    // This will throw a TypeError
    .css( "color", "red" );

Cela générera une erreur TypeError car isOpen() renvoie une valeur booléenne, pas un objet jQuery.