それで、このようなことは可能ですか?
Y.one("input.units").on("keyup change", function(e){
...
});
jqueryに相当するものは
$("input.units").bind("keyup change", function(e){
...
});
それで、このようなことは可能ですか?
Y.one("input.units").on("keyup change", function(e){
...
});
jqueryに相当するものは
$("input.units").bind("keyup change", function(e){
...
});
はい、これは可能です。文字列の代わりにイベント名の配列を渡すだけです。
Y.one('input.units').on(['keyup', 'change'], function (e) {
// ...
});
このようなものを試してみませんか:
var actionFunction = function(e) { /* stuff goes here */ };
node.one("input.units").on("keyup", actionFunction);
node.one("input.units").on("change", actionFunction);
編集: YUIはこれをネイティブにサポートします。以下のライアンの答えを参照してください。
いいえ。ただし、次のようなことができます。
YUI().use("node", "oop", function (Y) {
var on = Y.Node.prototype.on;
function detachOne(handle) {
handle.detach();
}
Y.mix(Y.Node.prototype, {
on: function (type, fn, context) {
var args = Y.Array(arguments),
types = args[0].split(" "),
handles = [];
Y.each(types, function (type) {
args[0] = type;
handles.push(on.apply(this, args));
})
return {
detach: Y.bind(Y.each, null, handles, detachOne)
};
}
}, true);
})
このコードは、Node.on()をラップして、スペースで区切られたイベントタイプの文字列を受け入れます。ハンドラーをすべてのイベントから切り離す単一のメソッドdetachでオブジェクトを返します。
このコードはサンドボックス内のYインスタンスにのみ影響するため、に渡す関数内に配置する必要があることに注意してくださいYUI().use
。モジュールとしてパッケージ化するのも簡単です。