1

さまざまなアクションについてさまざまな単語ベースに警告したいのですが、機能しません。

これは私のコードです:

<input id=main value="ddddd">
 <script type="text/javascript">
var obj = document.getElementById("main");
var items = [ "click", "keypress" ];
for ( var i = 0; i < items.length; i++ ) {
        obj[ "on" + items[i] ] = function() {
            alert( "Thanks for your " + items[i] );
        };
}
 </script>
4

1 に答える 1

3

クロージャーを作成する必要があります。そのようなものはうまくいくはずです:

function makeClosure(eventName) {
    return function() {
        alert( "Thanks for your " + eventName );
    };
}

var obj = document.getElementById("main");
var items = [ "click", "keypress" ];
for ( var i = 0; i < items.length; i++ ) {
        obj[ "on" + items[i]] = makeClosure(items[i]);
}​

jsFiddle: http://jsfiddle.net/NQKqk/

于 2012-07-11T03:42:49.990 に答える