Come aggiungere utilità / modulo personalizzato in YUI3
Domanda
Vorrei registrare un / Modulo d'utenza personalizzato all'interno YUI3 che viene passato uno o più nodo personalizzato (s) e che può essere chiamato come questo (senza dover istanziare):
YUI().use('myCustomModule', function (Y) {
Y.one('nodeToProcess').myCustomUtility(config);
Y.all('manyNodes').myCustomUtility(config);
});
jQuery offre una funzionalità simile.
So che un modulo personalizzato in YUI3 è definita in questo modo:
YUI.add('myCustomModule', function(Y) {
// my Code here
}, '0.1', {
requires : ['node']
});
Ma quello che non capisco è come impostare il mio modulo personalizzato, in modo che io possa chiamare come descritto. Devo estendere classe Plugin / Widget o l'uso Y.Namespace () per ottenere questo lavoro? (Vedi http://www.slideshare.net/caridy/building-yui -3-custom-moduli )
Soluzione
Si consiglia di provare questo:
<!doctype html>
<head>
<meta charset="utf-8">
<script src="http://yui.yahooapis.com/3.4.1/build/yui/yui-min.js"></script>
<script>
YUI.add('joiz', function(Y) {
function joizMagic(context, config) {
alert(config.name + ' says: "' + this.getContent() + '"');
}
// define a function that will run in the context of a
// Node instance:
Y.Node.addMethod("joizMagic", joizMagic);
// extend this functionality to NodeLists:
Y.NodeList.importMethod(Y.Node.prototype, "joizMagic");
}, '0.1.1' /* module version */, {
requires: ['node']
});
YUI().use('joiz', function (Y)
{
Y.all('.message').joizMagic({ name: 'Beatrice' });
});
</script>
</head>
<body>
<div class="message">Hello World!</div>
<div class="message">I'm still here!</div>
</body>
</html>
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow