私はJavaScript初心者です。 Node.on( 'click'、foo)にEventListenerを追加する必要がありました。私はそのようなことはしていたことをrememberredたよりEventListener例 "The Good Parts"
var i = 0;
Y.one('#btnDel' + i).on('click', function() {
Y.one('#part' + i).remove(true);
});
「JavaScriptの::良い部品」ブック、と私は(ページ39)それを見つけた:
を - もちろん - FAILと私の最初の試みでしたvar add_the_handlers = function (nodes) {
var i;
for (i = 0; i < nodes.length; i += 1) {
nodes[i].onclick = function (i) {
return function (e) {
alert(e);
};
}(i);
}
};
しかし、これはうまくいきません。 2番目(より21番目)の見方では、私にとって間違ったことがありました。引数 'e'を必要とする内部関数を返しますが、 'i'は内部関数に呼び出されません。 私はこれを「固定」と今ではYUIと私の場合に動作します:on the errata pakgeオン
Y.one('#btnDel' + i).on('click', function (i) {
return function() {
Y.one('#part' + i).remove(true);
}
}(i));
は、誰かがこれも「修正」を書きました。しかし、著者(Crockford!)はまだ本の版にとどまっています。私が監督するものはありますか?私の場合、私のバージョンが動作するのは偶然のことですか?
ps:私の匿名リターン機能でi
をthis.i
にバインドすると、グローバルオブジェクトになりますか?
pps:申し訳ありません、私の偉大な英語です。 :|