0

ボタンからイベント ハンドラーに変数を渡したいのですが、正しい方法がわかりません。行 x と行 y の両方がダメです。しかし、私はそのようなものが必要です。

htmlヘッドで

window.onload = function()
{
    var myButton = document.getElementsByTagName("button");

    for (var i = 0; i < myButton.length; i++)
    {
        myButton[i].onclick = function()        // <-- line x
        {                
            alert(myButton[i].data1);           // <-- line y
        }
    }
}

html 本文に

<button type = "button" data1 = "John" data2 = "52">Click Me</button>
<button type = "button" data1 = "Peter" data2 = "26">Click Me</button>
<button type = "button" data1 = "Mary" data2 = "44">Click Me</button>
4

2 に答える 2

2

私がまとめたこの JSFiddle の例を見てください: http://jsfiddle.net/BshLK/1/

コードサンプルの問題はi、ループの実行中にのみ値があるため、イベントハンドラーが実行されるまでに定義されていないことです。これを修正するには、まずイベントを呼び出した要素にアクセスする必要があり、次にgetAttribute()属性値を取得するために使用する必要があります。

于 2013-03-03T19:47:17.270 に答える
1

onload イベントから、jquery を使用していないと思いますが、jquery を気にしない場合は、data() メソッドを見てみましょう。次のようなことができます

$(function(){
    $("#button1").data("name", "value"); //your example would pass ("data","abcdefg");
    //Click handler.
    $("#button1").click(function(o,e){
         alert(o.data("name")); // alerts out "value"
    }
}

次に、その要素へのセレクターを使用してそのデータにアクセスできます。

ドキュメントへのリンク

于 2013-01-28T19:02:41.790 に答える